diff options
Diffstat (limited to 'winsup/mingw/mingwex')
175 files changed, 0 insertions, 9014 deletions
diff --git a/winsup/mingw/mingwex/Makefile.in b/winsup/mingw/mingwex/Makefile.in deleted file mode 100644 index 4c346d346..000000000 --- a/winsup/mingw/mingwex/Makefile.in +++ /dev/null @@ -1,198 +0,0 @@ -# -# mingw/mingwex/Makefile.in: This file is part of Mingw runtime. -# -# This makefile requires GNU make. - -srcdir = @srcdir@ -VPATH = $(srcdir):$(srcdir)/math -objdir = . - -target_alias = @target_alias@ -prefix = @prefix@ - -program_transform_name = @program_transform_name@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -libdir = @libdir@ -tooldir = $(exec_prefix)/$(target_alias) -datadir = @datadir@ -infodir = @infodir@ -includedir = @includedir@ - -SHELL = /bin/sh - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -mkinstalldirs = $(SHELL) $(srcdir)/../mkinstalldirs -DISTFILES = Makefile.in configure configure.in \ - _Exit.c atoll.c dirent.c feclearexcept.c fegetenv.c \ - fegetexceptflag.c fegetround.c feholdexcept.c feraiseexcept.c \ - fesetenv.c fesetexceptflag.c fesetround.c fetestexcept.c \ - feupdateenv.c fwide.c imaxabs.c imaxdiv.c lltoa.c lltow.c \ - mbsinit.c mingw-fseek.c sitest.c snprintf.c snwprintf.c \ - strtof.c strtoimax.c strtoumax.c testwmem.c ulltoa.c ulltow.c \ - vsnprintf.c vsnwprintf.c wcstof.c wcstoimax.c wcstoumax.c \ - wdirent.c wmemchr.c wmemcmp.c wmemcpy.c wmemmove.c wmemset.c \ - wtoll.c -MATH_DISTFILES = \ - acosf.c acosl.c asinf.c asinl.c atan2f.c atan2l.c \ - atanf.c atanl.c cbrt.c cbrtf.c cbrtl.c ceilf.S ceill.S cephes_mconf.h \ - copysign.S copysignf.S copysignl.S cosf.S coshf.c coshl.c cosl.S \ - exp2.S exp2f.S exp2l.S expf.c expl.c fabs.c fabsf.c fabsl.c \ - fdim.c fdimf.c fdiml.c floorf.S floorl.S fma.S fmaf.S fmal.c \ - fmax.c fmaxf.c fmaxl.c fmin.c fminf.c fminl.c fmodf.c \ - fmodl.c fp_consts.c fp_consts.h fp_constsf.c fp_constsl.c \ - fpclassify.c fpclassifyf.c fpclassifyl.c \ - frexpf.c frexpl.S fucom.c hypotf.c hypotl.c ilogb.S ilogbf.S \ - ilogbl.S isnan.c isnanf.c isnanl.c ldexpf.c ldexpl.c llrint.c \ - llrintf.c llrintl.c llround.c llroundf.c llroundl.c \ - log10f.S log10l.S log1p.S log1pf.S log1pl.S log2.S log2f.S \ - log2l.S logb.c logbf.c logbl.c logf.S logl.S lrint.c lrintf.c \ - lrintl.c lround.c lroundf.c lroundl.c modff.c modfl.c \ - nearbyint.S nearbyintf.S nearbyintl.S nextafterf.c powf.c powil.c \ - powl.c remainder.S remainderf.S remainderl.S remquo.S \ - remquof.S remquol.S rint.c rintf.c rintl.c round.c roundf.c \ - roundl.c scalbn.S scalbnf.S scalbnl.S signbit.c signbitf.c \ - signbitl.c sinf.S sinhf.c sinhl.c sinl.S sqrtf.c sqrtl.c \ - tanf.S tanhf.c tanhl.c tanl.S trunc.c truncf.c truncl.c - -CC = @CC@ -# FIXME: Which is it, CC or CC_FOR_TARGET? -CC_FOR_TARGET = $(CC) -AS_FOR_TARGET = $(AS) -CFLAGS = @CFLAGS@ -Wall -CXXFLAGS = @CXXFLAGS@ -OPTFLAGS= -fomit-frame-pointer - -# compiling with Cygwin? -MNO_CYGWIN = @MNO_CYGWIN@ - - -INCLUDES = -I$(srcdir) -I$(srcdir)/../include \ - -I$(srcdir)/../../w32api/include \ - -nostdinc -nostdinc++ \ - -iwithprefixbefore include -ALL_CFLAGS = $(CFLAGS) $(OPTFLAGS) $(INCLUDES) $(MNO_CYGWIN) -ALL_CXXFLAGS = $(CXXFLAGS) $(OPTFLAGS) $(INCLUDES) $(MNO_CYGWIN) - -AS = @AS@ -AR = @AR@ -LD = @LD@ -AR_FLAGS = rcv -RANLIB = @RANLIB@ -DLLTOOL = @DLLTOOL@ -DLLTOOLFLAGS = -DLLTOOL_FOR_TARGET = $(DLLTOOL) -DLLTOOL_FLAGS = --as $(AS_FOR_TARGET) - -LIBMINGWEX_A = libmingwex.a - -Q8_OBJS = \ - fwide.o imaxabs.o imaxdiv.o mbsinit.o \ - strtoimax.o strtoumax.o wcstoimax.o wcstoumax.o \ - wmemchr.o wmemcmp.o wmemcpy.o wmemmove.o wmemset.o -STDLIB_STUB_OBJS = \ - lltoa.o ulltoa.o \ - lltow.o ulltow.o \ - atoll.o wtoll.o \ - strtof.o wcstof.o \ - _Exit.o -STDIO_STUB_OBJS = \ - snprintf.o vsnprintf.o snwprintf.o vsnwprintf.o -MATH_OBJS = \ - acosf.o acosl.o asinf.o asinl.o atan2f.o atan2l.o \ - atanf.o atanl.o cbrt.o cbrtf.o cbrtl.o ceilf.o ceill.o \ - copysign.o copysignf.o copysignl.o cosf.o coshf.o coshl.o cosl.o \ - exp2.o exp2f.o exp2l.o expf.o expl.o fabs.o fabsf.o fabsl.o \ - fdim.o fdimf.o fdiml.o floorf.o floorl.o fma.o fmaf.o fmal.o \ - fmax.o fmaxf.o fmaxl.o fmin.o fminf.o fminl.o fmodf.o \ - fmodl.o fp_consts.o fp_constsf.o fp_constsl.o \ - fpclassify.o fpclassifyf.o fpclassifyl.o \ - frexpf.o frexpl.o fucom.o hypotf.o hypotl.o ilogb.o ilogbf.o \ - ilogbl.o isnan.o isnanf.o isnanl.o ldexpf.o ldexpl.o llrint.o \ - llrintf.o llrintl.o llround.o llroundf.o llroundl.o \ - log10f.o log10l.o log1p.o log1pf.o log1pl.o log2.o log2f.o \ - log2l.o logb.o logbf.o logbl.o logf.o logl.o lrint.o lrintf.o \ - lrintl.o lround.o lroundf.o lroundl.o modff.o modfl.o \ - nearbyint.o nearbyintf.o nearbyintl.o nextafterf.o powf.o powil.o \ - powl.o remainder.o remainderf.o remainderl.o remquo.o \ - remquof.o remquol.o rint.o rintf.o rintl.o round.o roundf.o \ - roundl.o scalbn.o scalbnf.o scalbnl.o signbit.o signbitf.o \ - signbitl.o sinf.o sinhf.o sinhl.o sinl.o sqrtf.o sqrtl.o \ - tanf.o tanhf.o tanhl.o tanl.o trunc.o truncf.o truncl.o -FENV_OBJS = fesetround.o fegetround.o \ - fegetenv.o fesetenv.o feupdateenv.o \ - feclearexcept.o feholdexcept.o fegetexceptflag.o \ - feraiseexcept.o fetestexcept.o fesetexceptflag.o -POSIX_OBJS = \ - dirent.o wdirent.o -REPLACE_OBJS = \ - mingw-fseek.o - -LIB_OBJS = $(Q8_OBJS) $(STDLIB_STUB_OBJS) $(STDIO_STUB_OBJS) \ - $(MATH_OBJS) $(FENV_OBJS) $(POSIX_OBJS) \ - $(REPLACE_OBJS) - -LIBS = $(LIBMINGWEX_A) -DLLS = - -all: $(LIBMINGWEX_A) - -$(LIBMINGWEX_A): $(LIB_OBJS) - rm -f $(LIBMINGWEX_A) - $(AR) $(ARFLAGS) $@ $(LIB_OBJS) - $(RANLIB) $@ - - -Makefile: Makefile.in config.status configure - $(SHELL) config.status - -config.status: configure - $(SHELL) config.status --recheck - -info: - -info-html: - -install-info: info - -install: all - $(mkinstalldirs) $(inst_libdir) - for i in $(LIBS); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ - done - -clean: - -rm -f $(LIB_OBJS) $(LIBMINGWEX_A) - -distclean: - -rm -f *.o *.a *~ core a.out - -rm -f config.cache config.status config.log - -rm -f Makefile -.c.o: - $(CC) -c $(ALL_CFLAGS) $< -o $@ -.S.o: - $(CC) -c $< -o $@ -.s.o: - $(CC) -c $< -o $@ - - -# -# Dependancies -# -wdirent.o: $(srcdir)/dirent.c $(srcdir)/wdirent.c - - -dist: - mkdir $(distdir)/mingwex - chmod 755 $(distdir)/mingwex - @for i in $(DISTFILES); do\ - cp -p $(srcdir)/$$i $(distdir)/mingwex/$$i ; \ - done - mkdir $(distdir)/mingwex/math - chmod 755 $(distdir)//mingwex/math - @for i in $(MATH_DISTFILES); do\ - cp -p $(srcdir)/math/$$i $(distdir)/mingwex/math/$$i ; \ - done - diff --git a/winsup/mingw/mingwex/_Exit.c b/winsup/mingw/mingwex/_Exit.c deleted file mode 100644 index 38f7e182e..000000000 --- a/winsup/mingw/mingwex/_Exit.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <stdlib.h> -void _Exit(int status) - { _exit(status); } diff --git a/winsup/mingw/mingwex/atoll.c b/winsup/mingw/mingwex/atoll.c deleted file mode 100644 index 97920b4ee..000000000 --- a/winsup/mingw/mingwex/atoll.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <stdlib.h> -long long atoll (const char * _c) - { return _atoi64 (_c); } diff --git a/winsup/mingw/mingwex/configure b/winsup/mingw/mingwex/configure deleted file mode 100755 index 746c6fedc..000000000 --- a/winsup/mingw/mingwex/configure +++ /dev/null @@ -1,1007 +0,0 @@ -#! /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: - -# 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=imaxabs.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 - - - -CC=${CC-cc} - -AS=${AS-as} - -AR=${AR-ar} - -LD=${LD-ld} - -RANLIB=${RANLIB-ranlib} - -DLLTOOL=${DLLTOOL-dlltool} - -DLLWRAP=${DLLWRAP-dllwrap} - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $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 $srcdir/.. $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. - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# 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:587: 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 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:608: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:626: 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 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - - -case "$target_os" in -*cygwin*) - MNO_CYGWIN=-mno-cygwin - ;; -*) - # Build it for MSVCRT by default. - MNO_CYGWIN= - ;; -esac - - - -# 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:673: 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' - -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%@CC@%$CC%g -s%@AS@%$AS%g -s%@AR@%$AR%g -s%@LD@%$LD%g -s%@RANLIB@%$RANLIB%g -s%@DLLTOOL@%$DLLTOOL%g -s%@DLLWRAP@%$DLLWRAP%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%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%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%@MNO_CYGWIN@%$MNO_CYGWIN%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%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/winsup/mingw/mingwex/configure.in b/winsup/mingw/mingwex/configure.in deleted file mode 100644 index 4c0ed4207..000000000 --- a/winsup/mingw/mingwex/configure.in +++ /dev/null @@ -1,52 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. - -dnl This file is part of Mingw runtime. -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -AC_PREREQ(2.13) -AC_INIT(imaxabs.c) - -CC=${CC-cc} -AC_SUBST(CC) -AS=${AS-as} -AC_SUBST(AS) -AR=${AR-ar} -AC_SUBST(AR) -LD=${LD-ld} -AC_SUBST(LD) -RANLIB=${RANLIB-ranlib} -AC_SUBST(RANLIB) -DLLTOOL=${DLLTOOL-dlltool} -AC_SUBST(DLLTOOL) -DLLWRAP=${DLLWRAP-dllwrap} -AC_SUBST(DLLWRAP) -AC_CANONICAL_SYSTEM - -case "$target_os" in -*cygwin*) - MNO_CYGWIN=-mno-cygwin - ;; -*) - # Build it for MSVCRT by default. - MNO_CYGWIN= - ;; -esac - -AC_SUBST(MNO_CYGWIN) - -AC_PROG_INSTALL -AC_OUTPUT(Makefile) - diff --git a/winsup/mingw/mingwex/dirent.c b/winsup/mingw/mingwex/dirent.c deleted file mode 100644 index 91c170619..000000000 --- a/winsup/mingw/mingwex/dirent.c +++ /dev/null @@ -1,320 +0,0 @@ -/* - * dirent.c - * - * Derived from DIRLIB.C by Matt J. Weinstein - * This note appears in the DIRLIB.H - * DIRLIB.H by M. J. Weinstein Released to public domain 1-Jan-89 - * - * Updated by Jeremy Bettis <jeremy@hksys.com> - * Significantly revised and rewinddir, seekdir and telldir added by Colin - * Peters <colin@fu.is.saga-u.ac.jp> - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#include <stdlib.h> -#include <errno.h> -#include <string.h> -#include <io.h> -#include <direct.h> -#include <dirent.h> - -#define WIN32_LEAN_AND_MEAN -#include <windows.h> /* for GetFileAttributes */ - -#include <tchar.h> -#define SUFFIX _T("*") -#define SLASH _T("\\") - -/* - * opendir - * - * Returns a pointer to a DIR structure appropriately filled in to begin - * searching a directory. - */ -_TDIR * -_topendir (const _TCHAR *szPath) -{ - _TDIR *nd; - unsigned int rc; - _TCHAR szFullPath[MAX_PATH]; - - errno = 0; - - if (!szPath) - { - errno = EFAULT; - return (_TDIR *) 0; - } - - if (szPath[0] == _T('\0')) - { - errno = ENOTDIR; - return (_TDIR *) 0; - } - - /* Attempt to determine if the given path really is a directory. */ - rc = GetFileAttributes (szPath); - if (rc == -1) - { - /* call GetLastError for more error info */ - errno = ENOENT; - return (_TDIR *) 0; - } - if (!(rc & FILE_ATTRIBUTE_DIRECTORY)) - { - /* Error, entry exists but not a directory. */ - errno = ENOTDIR; - return (_TDIR *) 0; - } - - /* Make an absolute pathname. */ - _tfullpath (szFullPath, szPath, MAX_PATH); - - /* Allocate enough space to store DIR structure and the complete - * directory path given. */ - nd = (_TDIR *) malloc (sizeof (_TDIR) + _tcslen (szFullPath) + _tcslen (SLASH) + - _tcslen (SUFFIX)); - - if (!nd) - { - /* Error, out of memory. */ - errno = ENOMEM; - return (_TDIR *) 0; - } - - /* Create the search expression. */ - _tcscpy (nd->dd_name, szFullPath); - - /* Add on a slash if the path does not end with one. */ - if (nd->dd_name[0] != _T('\0') && - nd->dd_name[_tcslen (nd->dd_name) - 1] != _T('/') && - nd->dd_name[_tcslen (nd->dd_name) - 1] != _T('\\')) - { - _tcscat (nd->dd_name, SLASH); - } - - /* Add on the search pattern */ - _tcscat (nd->dd_name, SUFFIX); - - /* Initialize handle to -1 so that a premature closedir doesn't try - * to call _findclose on it. */ - nd->dd_handle = -1; - - /* Initialize the status. */ - nd->dd_stat = 0; - - /* Initialize the dirent structure. ino and reclen are invalid under - * Win32, and name simply points at the appropriate part of the - * findfirst_t structure. */ - nd->dd_dir.d_ino = 0; - nd->dd_dir.d_reclen = 0; - nd->dd_dir.d_namlen = 0; - nd->dd_dir.d_name = nd->dd_dta.name; - - return nd; -} - - -/* - * readdir - * - * Return a pointer to a dirent structure filled with the information on the - * next entry in the directory. - */ -struct _tdirent * -_treaddir (_TDIR * dirp) -{ - errno = 0; - - /* Check for valid DIR struct. */ - if (!dirp) - { - errno = EFAULT; - return (struct _tdirent *) 0; - } - - if (dirp->dd_dir.d_name != dirp->dd_dta.name) - { - /* The structure does not seem to be set up correctly. */ - errno = EINVAL; - return (struct _tdirent *) 0; - } - - if (dirp->dd_stat < 0) - { - /* We have already returned all files in the directory - * (or the structure has an invalid dd_stat). */ - return (struct _tdirent *) 0; - } - else if (dirp->dd_stat == 0) - { - /* We haven't started the search yet. */ - /* Start the search */ - dirp->dd_handle = _tfindfirst (dirp->dd_name, &(dirp->dd_dta)); - - if (dirp->dd_handle == -1) - { - /* Whoops! Seems there are no files in that - * directory. */ - dirp->dd_stat = -1; - } - else - { - dirp->dd_stat = 1; - } - } - else - { - /* Get the next search entry. */ - if (_tfindnext (dirp->dd_handle, &(dirp->dd_dta))) - { - /* We are off the end or otherwise error. */ - _findclose (dirp->dd_handle); - dirp->dd_handle = -1; - dirp->dd_stat = -1; - } - else - { - /* Update the status to indicate the correct - * number. */ - dirp->dd_stat++; - } - } - - if (dirp->dd_stat > 0) - { - /* Successfully got an entry. Everything about the file is - * already appropriately filled in except the length of the - * file name. */ - dirp->dd_dir.d_namlen = _tcslen (dirp->dd_dir.d_name); - return &dirp->dd_dir; - } - - return (struct _tdirent *) 0; -} - - -/* - * closedir - * - * Frees up resources allocated by opendir. - */ -int -_tclosedir (_TDIR * dirp) -{ - int rc; - - errno = 0; - rc = 0; - - if (!dirp) - { - errno = EFAULT; - return -1; - } - - if (dirp->dd_handle != -1) - { - rc = _findclose (dirp->dd_handle); - } - - /* Delete the dir structure. */ - free (dirp); - - return rc; -} - -/* - * rewinddir - * - * Return to the beginning of the directory "stream". We simply call findclose - * and then reset things like an opendir. - */ -void -_trewinddir (_TDIR * dirp) -{ - errno = 0; - - if (!dirp) - { - errno = EFAULT; - return; - } - - if (dirp->dd_handle != -1) - { - _findclose (dirp->dd_handle); - } - - dirp->dd_handle = -1; - dirp->dd_stat = 0; -} - -/* - * telldir - * - * Returns the "position" in the "directory stream" which can be used with - * seekdir to go back to an old entry. We simply return the value in stat. - */ -long -_ttelldir (_TDIR * dirp) -{ - errno = 0; - - if (!dirp) - { - errno = EFAULT; - return -1; - } - return dirp->dd_stat; -} - -/* - * seekdir - * - * Seek to an entry previously returned by telldir. We rewind the directory - * and call readdir repeatedly until either dd_stat is the position number - * or -1 (off the end). This is not perfect, in that the directory may - * have changed while we weren't looking. But that is probably the case with - * any such system. - */ -void -_tseekdir (_TDIR * dirp, long lPos) -{ - errno = 0; - - if (!dirp) - { - errno = EFAULT; - return; - } - - if (lPos < -1) - { - /* Seeking to an invalid position. */ - errno = EINVAL; - return; - } - else if (lPos == -1) - { - /* Seek past end. */ - if (dirp->dd_handle != -1) - { - _findclose (dirp->dd_handle); - } - dirp->dd_handle = -1; - dirp->dd_stat = -1; - } - else - { - /* Rewind and read forward to the appropriate index. */ - _trewinddir (dirp); - - while ((dirp->dd_stat < lPos) && _treaddir (dirp)) - ; - } -} diff --git a/winsup/mingw/mingwex/feclearexcept.c b/winsup/mingw/mingwex/feclearexcept.c deleted file mode 100644 index e6017fc9d..000000000 --- a/winsup/mingw/mingwex/feclearexcept.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <fenv.h> - -/* 7.6.2.1 - The feclearexcept function clears the supported exceptions - represented by its argument. */ - -int feclearexcept (int excepts) -{ - fenv_t _env; - __asm__ volatile ("fnstenv %0;" : "=m" (_env)); /* get the env */ - _env.__status_word &= ~(excepts & FE_ALL_EXCEPT); /* clear the except */ - __asm__ volatile ("fldenv %0;" :: "m" (_env)); /*set the env */ - return 0; -} diff --git a/winsup/mingw/mingwex/fegetenv.c b/winsup/mingw/mingwex/fegetenv.c deleted file mode 100644 index 5ea5bd011..000000000 --- a/winsup/mingw/mingwex/fegetenv.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <fenv.h> - -/* 7.6.4.1 - The fegetenv function stores the current floating-point environment - in the object pointed to by envp. */ - -int fegetenv (fenv_t * envp) -{ - __asm__ ("fnstenv %0;": "=m" (*envp)); - return 0; -} - diff --git a/winsup/mingw/mingwex/fegetexceptflag.c b/winsup/mingw/mingwex/fegetexceptflag.c deleted file mode 100644 index 353e90dfa..000000000 --- a/winsup/mingw/mingwex/fegetexceptflag.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <fenv.h> - - -/* 7.6.2.2 - The fegetexceptflag function stores an implementation-defined - representation of the exception flags indicated by the argument - excepts in the object pointed to by the argument flagp. */ - -int fegetexceptflag (fexcept_t * flagp, int excepts) -{ - unsigned short _sw; - __asm__ ("fnstsw %%ax;": "=a" (_sw)); - *flagp = _sw & excepts & FE_ALL_EXCEPT; - return 0; -} diff --git a/winsup/mingw/mingwex/fegetround.c b/winsup/mingw/mingwex/fegetround.c deleted file mode 100644 index 076b1068c..000000000 --- a/winsup/mingw/mingwex/fegetround.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <fenv.h> - -/* 7.6.3.1 - The fegetround function returns the value of the rounding direction - macro representing the current rounding direction. */ - -int -fegetround (void) -{ - unsigned short _cw; - __asm__ ("fnstcw %0;" : "=m" (_cw)); - return _cw - & (FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO); -} diff --git a/winsup/mingw/mingwex/feholdexcept.c b/winsup/mingw/mingwex/feholdexcept.c deleted file mode 100644 index df486afb3..000000000 --- a/winsup/mingw/mingwex/feholdexcept.c +++ /dev/null @@ -1,18 +0,0 @@ -#include <fenv.h> - -/* 7.6.4.2 - The feholdexcept function saves the current floating-point - environment in the object pointed to by envp, clears the exception - flags, and then installs a non-stop (continue on exceptions) mode, - if available, for all exceptions. */ - -int feholdexcept (fenv_t * envp) -{ - fenv_t tmp_env; - __asm__ ("fnstenv %0;" : "=m" (* envp)); /* save current into envp */ - tmp_env = * envp; - tmp_env.__status_word &= ~FE_ALL_EXCEPT; /* clear exception flags */ - tmp_env.__control_word |= FE_ALL_EXCEPT; /* set cw to non-stop */ - __asm__ volatile ("fldenv %0;" : : "m" (tmp_env)); /* install the copy */ - return 0; -} diff --git a/winsup/mingw/mingwex/feraiseexcept.c b/winsup/mingw/mingwex/feraiseexcept.c deleted file mode 100644 index b1ba87006..000000000 --- a/winsup/mingw/mingwex/feraiseexcept.c +++ /dev/null @@ -1,19 +0,0 @@ -#include <fenv.h> - -/* 7.6.2.3 - The feraiseexcept function raises the supported exceptions - represented by its argument The order in which these exceptions - are raised is unspecified, except as stated in F.7.6. - Whether the feraiseexcept function additionally raises - the inexact exception whenever it raises the overflow - or underflow exception is implementation-defined. */ - -int feraiseexcept (int excepts) -{ - fenv_t _env; - __asm__ volatile ("fnstenv %0;" : "=m" (_env)); - _env.__status_word |= excepts & FE_ALL_EXCEPT; - __asm__ volatile ("fldenv %0;" - "fwait;" : : "m" (_env)); - return 0; -} diff --git a/winsup/mingw/mingwex/fesetenv.c b/winsup/mingw/mingwex/fesetenv.c deleted file mode 100644 index b3d5c5f05..000000000 --- a/winsup/mingw/mingwex/fesetenv.c +++ /dev/null @@ -1,41 +0,0 @@ -#include <fenv.h> - -/* 7.6.4.3 - The fesetenv function establishes the floating-point environment - represented by the object pointed to by envp. The argument envp - points to an object set by a call to fegetenv or feholdexcept, or - equal the macro FE_DFL_ENV or an implementation-defined environment - macro. Note that fesetenv merely installs the state of the exception - flags represented through its argument, and does not raise these - exceptions. - */ - -extern void (*_imp___fpreset)( void ) ; - -int fesetenv (const fenv_t * envp) -{ - if (envp == FE_PC64_ENV) - /* - * fninit initializes the control register to 0x37f, - * the status register to zero and the tag word to 0FFFFh. - * The other registers are unaffected. - */ - __asm__ ("fninit"); - - else if (envp == FE_PC53_ENV) - /* - * MS _fpreset() does same *except* it sets control word - * to 0x27f (53-bit precison). - * We force calling _fpreset in msvcrt.dll - */ - - (*_imp___fpreset)(); - - else if (envp == FE_DFL_ENV) - /* Use the choice made at app startup */ - _fpreset(); - - else - __asm__ ("fldenv %0;" : : "m" (*envp)); - return 0; -} diff --git a/winsup/mingw/mingwex/fesetexceptflag.c b/winsup/mingw/mingwex/fesetexceptflag.c deleted file mode 100644 index 7f4b8e562..000000000 --- a/winsup/mingw/mingwex/fesetexceptflag.c +++ /dev/null @@ -1,22 +0,0 @@ -#include <fenv.h> - -/* 7.6.2.4 - The fesetexceptflag function sets the complete status for those - exception flags indicated by the argument excepts, according to the - representation in the object pointed to by flagp. The value of - *flagp shall have been set by a previous call to fegetexceptflag - whose second argument represented at least those exceptions - represented by the argument excepts. This function does not raise - exceptions, but only sets the state of the flags. */ - -int fesetexceptflag (const fexcept_t * flagp, int excepts) -{ - fenv_t _env; - - excepts &= FE_ALL_EXCEPT; - __asm__ volatile ("fnstenv %0;" : "=m" (_env)); - _env.__status_word &= ~excepts; - _env.__status_word |= (*flagp & excepts); - __asm__ volatile ("fldenv %0;" : : "m" (_env)); - return 0; -} diff --git a/winsup/mingw/mingwex/fesetround.c b/winsup/mingw/mingwex/fesetround.c deleted file mode 100644 index a8cef86a4..000000000 --- a/winsup/mingw/mingwex/fesetround.c +++ /dev/null @@ -1,19 +0,0 @@ -#include <fenv.h> - /* 7.6.3.2 - The fesetround function establishes the rounding direction - represented by its argument round. If the argument is not equal - to the value of a rounding direction macro, the rounding direction - is not changed. */ - -int fesetround (int mode) -{ - unsigned short _cw; - if ((mode & ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO)) - != 0) - return -1; - __asm__ volatile ("fnstcw %0;": "=m" (_cw)); - _cw &= ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO); - _cw |= mode; - __asm__ volatile ("fldcw %0;" : : "m" (_cw)); - return 0; -} diff --git a/winsup/mingw/mingwex/fetestexcept.c b/winsup/mingw/mingwex/fetestexcept.c deleted file mode 100644 index 6934ed925..000000000 --- a/winsup/mingw/mingwex/fetestexcept.c +++ /dev/null @@ -1,15 +0,0 @@ -#include <fenv.h> -/* 7.6.2.5 - The fetestexcept function determines which of a specified subset of - the exception flags are currently set. The excepts argument - specifies the exception flags to be queried. - The fetestexcept function returns the value of the bitwise OR of the - exception macros corresponding to the currently set exceptions - included in excepts. */ - -int fetestexcept (int excepts) -{ - unsigned short _sw; - __asm__ ("fnstsw %%ax" : "=a" (_sw)); - return _sw & excepts & FE_ALL_EXCEPT; -} diff --git a/winsup/mingw/mingwex/feupdateenv.c b/winsup/mingw/mingwex/feupdateenv.c deleted file mode 100644 index f414837f5..000000000 --- a/winsup/mingw/mingwex/feupdateenv.c +++ /dev/null @@ -1,20 +0,0 @@ -#include <fenv.h> - -/* 7.6.4.4 - The feupdateenv function saves the currently raised exceptions in - its automatic storage, installs the floating-point environment - represented by the object pointed to by envp, and then raises the - saved exceptions. The argument envp shall point to an object - set by a call to feholdexcept or fegetenv, or equal the macro - FE_DFL_ENV or an implementation-defined environment macro. */ - -/* FIXME: this works but surely there must be a better way. */ - -int feupdateenv (const fenv_t * envp) -{ - unsigned int _fexcept = fetestexcept (FE_ALL_EXCEPT); /*save excepts */ - fesetenv (envp); /* install the env */ - feraiseexcept (_fexcept); /* raise the execept */ - return 0; -} - diff --git a/winsup/mingw/mingwex/fwide.c b/winsup/mingw/mingwex/fwide.c deleted file mode 100644 index fc8bf5bf5..000000000 --- a/winsup/mingw/mingwex/fwide.c +++ /dev/null @@ -1,25 +0,0 @@ -/* This source code was extracted from the Q8 package created and placed - in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.24 of ISO/IEC 9899:1999 (E). - - This is a minimal implementation for environments where - internationalization is not considered important. - - It supports an encoding where all char codes are mapped - to the *same* code values within a wchar_t or wint_t, - so long as no other wchar_t codes are used by the program. - -*/ - -#include <wchar.h> - -int -fwide(stream, mode) - FILE *stream; - int mode; - { - return -1; /* limited to byte orientation */ - } - diff --git a/winsup/mingw/mingwex/imaxabs.c b/winsup/mingw/mingwex/imaxabs.c deleted file mode 100644 index b643ceab6..000000000 --- a/winsup/mingw/mingwex/imaxabs.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - This source code was extracted from the Q8 package created and - placed in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.8.2 of ISO/IEC 9899:1999 (E). - - This particular implementation requires the matching <inttypes.h>. -*/ - -#include <inttypes.h> - -intmax_t -imaxabs (intmax_t _j) - { return _j >= 0 ? _j : -_j; } - -long long __attribute__ ((alias ("imaxabs"))) llabs (long long); diff --git a/winsup/mingw/mingwex/imaxdiv.c b/winsup/mingw/mingwex/imaxdiv.c deleted file mode 100644 index 6acfcf6cb..000000000 --- a/winsup/mingw/mingwex/imaxdiv.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - This source code was extracted from the Q8 package created and - placed in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.8.2 of ISO/IEC 9899:1999 (E). - -*/ - -#include <inttypes.h> - -imaxdiv_t -imaxdiv(intmax_t numer, intmax_t denom) -{ - imaxdiv_t result; - result.quot = numer / denom; - result.rem = numer % denom; - return result; -} - -long long __attribute__ ((alias ("imaxdiv"))) -lldiv (long long, long long); diff --git a/winsup/mingw/mingwex/lltoa.c b/winsup/mingw/mingwex/lltoa.c deleted file mode 100644 index 28248a834..000000000 --- a/winsup/mingw/mingwex/lltoa.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <stdlib.h> -char* lltoa(long long _n, char * _c, int _i) - { return _i64toa (_n, _c, _i); } diff --git a/winsup/mingw/mingwex/lltow.c b/winsup/mingw/mingwex/lltow.c deleted file mode 100644 index cdf45b742..000000000 --- a/winsup/mingw/mingwex/lltow.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <stdlib.h> -wchar_t* lltow(long long _n, wchar_t * _w, int _i) - { return _i64tow (_n, _w, _i); } diff --git a/winsup/mingw/mingwex/math/acosf.c b/winsup/mingw/mingwex/math/acosf.c deleted file mode 100644 index 364f6a90c..000000000 --- a/winsup/mingw/mingwex/math/acosf.c +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - -#include <math.h> - -float -acosf (float x) -{ - float res; - - /* acosl = atanl (sqrtl(1 - x^2) / x) */ - asm ( "fld %%st\n\t" - "fmul %%st(0)\n\t" /* x^2 */ - "fld1\n\t" - "fsubp\n\t" /* 1 - x^2 */ - "fsqrt\n\t" /* sqrtl (1 - x^2) */ - "fxch %%st(1)\n\t" - "fpatan" - : "=t" (res) : "0" (x) : "st(1)"); - return res; -} diff --git a/winsup/mingw/mingwex/math/acosl.c b/winsup/mingw/mingwex/math/acosl.c deleted file mode 100644 index f98d2cdc1..000000000 --- a/winsup/mingw/mingwex/math/acosl.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - */ - -#include <math.h> - -long double -acosl (long double x) -{ - long double res; - - /* acosl = atanl (sqrtl(1 - x^2) / x) */ - asm ( "fld %%st\n\t" - "fmul %%st(0)\n\t" /* x^2 */ - "fld1\n\t" - "fsubp\n\t" /* 1 - x^2 */ - "fsqrt\n\t" /* sqrtl (1 - x^2) */ - "fxch %%st(1)\n\t" - "fpatan" - : "=t" (res) : "0" (x) : "st(1)"); - return res; -} diff --git a/winsup/mingw/mingwex/math/asinf.c b/winsup/mingw/mingwex/math/asinf.c deleted file mode 100644 index e79429ec8..000000000 --- a/winsup/mingw/mingwex/math/asinf.c +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - -/* asin = atan (x / sqrt(1 - x^2)) */ - -float asinf (float x) -{ - float res; - - asm ( "fld %%st\n\t" - "fmul %%st(0)\n\t" /* x^2 */ - "fld1\n\t" - "fsubp\n\t" /* 1 - x^2 */ - "fsqrt\n\t" /* sqrt (1 - x^2) */ - "fpatan" - : "=t" (res) : "0" (x) : "st(1)"); - return res; -} diff --git a/winsup/mingw/mingwex/math/asinl.c b/winsup/mingw/mingwex/math/asinl.c deleted file mode 100644 index a2ac32b39..000000000 --- a/winsup/mingw/mingwex/math/asinl.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * Adapted for long double type by Danny Smith <dannysmith@users.sourceforge.net>. - */ - -/* asin = atan (x / sqrt(1 - x^2)) */ - -long double asinl (long double x) -{ - long double res; - - asm ( "fld %%st\n\t" - "fmul %%st(0)\n\t" /* x^2 */ - "fld1\n\t" - "fsubp\n\t" /* 1 - x^2 */ - "fsqrt\n\t" /* sqrt (1 - x^2) */ - "fpatan" - : "=t" (res) : "0" (x) : "st(1)"); - return res; -} diff --git a/winsup/mingw/mingwex/math/atan2f.c b/winsup/mingw/mingwex/math/atan2f.c deleted file mode 100644 index 52ec6f672..000000000 --- a/winsup/mingw/mingwex/math/atan2f.c +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - */ - -#include <math.h> - -float -atan2f (float y, float x) -{ - float res; - asm ("fpatan" : "=t" (res) : "u" (y), "0" (x) : "st(1)"); - return res; -} diff --git a/winsup/mingw/mingwex/math/atan2l.c b/winsup/mingw/mingwex/math/atan2l.c deleted file mode 100644 index efd62c1ec..000000000 --- a/winsup/mingw/mingwex/math/atan2l.c +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - */ - -#include <math.h> - -long double -atan2l (long double y, long double x) -{ - long double res; - asm ("fpatan" : "=t" (res) : "u" (y), "0" (x) : "st(1)"); - return res; -} diff --git a/winsup/mingw/mingwex/math/atanf.c b/winsup/mingw/mingwex/math/atanf.c deleted file mode 100644 index ae70d5daa..000000000 --- a/winsup/mingw/mingwex/math/atanf.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - */ - -#include <math.h> - -float -atanf (float x) -{ - float res; - - asm ("fld1\n\t" - "fpatan" : "=t" (res) : "0" (x)); - return res; -} diff --git a/winsup/mingw/mingwex/math/atanl.c b/winsup/mingw/mingwex/math/atanl.c deleted file mode 100644 index 5de06d35b..000000000 --- a/winsup/mingw/mingwex/math/atanl.c +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - */ - -#include <math.h> - -long double -atanl (long double x) -{ - long double res; - - asm ("fld1\n\t" - "fpatan" - : "=t" (res) : "0" (x)); - return res; -} diff --git a/winsup/mingw/mingwex/math/cbrt.c b/winsup/mingw/mingwex/math/cbrt.c deleted file mode 100644 index 93f5c819c..000000000 --- a/winsup/mingw/mingwex/math/cbrt.c +++ /dev/null @@ -1,162 +0,0 @@ -/* cbrt.c - * - * Cube root - * - * - * - * SYNOPSIS: - * - * double x, y, cbrt(); - * - * y = cbrt( x ); - * - * - * - * DESCRIPTION: - * - * Returns the cube root of the argument, which may be negative. - * - * Range reduction involves determining the power of 2 of - * the argument. A polynomial of degree 2 applied to the - * mantissa, and multiplication by the cube root of 1, 2, or 4 - * approximates the root to within about 0.1%. Then Newton's - * iteration is used three times to converge to an accurate - * result. - * - * - * - * ACCURACY: - * - * Relative error: - * arithmetic domain # trials peak rms - * DEC -10,10 200000 1.8e-17 6.2e-18 - * IEEE 0,1e308 30000 1.5e-16 5.0e-17 - * - */ -/* cbrt.c */ - -/* -Cephes Math Library Release 2.2: January, 1991 -Copyright 1984, 1991 by Stephen L. Moshier -Direct inquiries to 30 Frost Street, Cambridge, MA 02140 -*/ - -/* - Modified for mingwex.a - 2002-07-01 Danny Smith <dannysmith@users.sourceforge.net> - */ -#ifdef __MINGW32__ -#include <math.h> -#include "cephes_mconf.h" -#else -#include "mconf.h" -#endif - - -static const double CBRT2 = 1.2599210498948731647672; -static const double CBRT4 = 1.5874010519681994747517; -static const double CBRT2I = 0.79370052598409973737585; -static const double CBRT4I = 0.62996052494743658238361; - -#ifndef __MINGW32__ -#ifdef ANSIPROT -extern double frexp ( double, int * ); -extern double ldexp ( double, int ); -extern int isnan ( double ); -extern int isfinite ( double ); -#else -double frexp(), ldexp(); -int isnan(), isfinite(); -#endif -#endif - -double cbrt(x) -double x; -{ -int e, rem, sign; -double z; - -#ifdef __MINGW32__ -if (!isfinite (x) || x == 0 ) - return x; -#else - -#ifdef NANS -if( isnan(x) ) - return x; -#endif -#ifdef INFINITIES -if( !isfinite(x) ) - return x; -#endif -if( x == 0 ) - return( x ); - -#endif /* __MINGW32__ */ - -if( x > 0 ) - sign = 1; -else - { - sign = -1; - x = -x; - } - -z = x; -/* extract power of 2, leaving - * mantissa between 0.5 and 1 - */ -x = frexp( x, &e ); - -/* Approximate cube root of number between .5 and 1, - * peak relative error = 9.2e-6 - */ -x = (((-1.3466110473359520655053e-1 * x - + 5.4664601366395524503440e-1) * x - - 9.5438224771509446525043e-1) * x - + 1.1399983354717293273738e0 ) * x - + 4.0238979564544752126924e-1; - -/* exponent divided by 3 */ -if( e >= 0 ) - { - rem = e; - e /= 3; - rem -= 3*e; - if( rem == 1 ) - x *= CBRT2; - else if( rem == 2 ) - x *= CBRT4; - } - - -/* argument less than 1 */ - -else - { - e = -e; - rem = e; - e /= 3; - rem -= 3*e; - if( rem == 1 ) - x *= CBRT2I; - else if( rem == 2 ) - x *= CBRT4I; - e = -e; - } - -/* multiply by power of 2 */ -x = ldexp( x, e ); - -/* Newton iteration */ -x -= ( x - (z/(x*x)) )*0.33333333333333333333; -#ifdef DEC -x -= ( x - (z/(x*x)) )/3.0; -#else -x -= ( x - (z/(x*x)) )*0.33333333333333333333; -#endif - -if( sign < 0 ) - x = -x; -return(x); -} diff --git a/winsup/mingw/mingwex/math/cbrtf.c b/winsup/mingw/mingwex/math/cbrtf.c deleted file mode 100644 index 537cf8d98..000000000 --- a/winsup/mingw/mingwex/math/cbrtf.c +++ /dev/null @@ -1,147 +0,0 @@ -/* cbrtf.c - * - * Cube root - * - * - * - * SYNOPSIS: - * - * float x, y, cbrtf(); - * - * y = cbrtf( x ); - * - * - * - * DESCRIPTION: - * - * Returns the cube root of the argument, which may be negative. - * - * Range reduction involves determining the power of 2 of - * the argument. A polynomial of degree 2 applied to the - * mantissa, and multiplication by the cube root of 1, 2, or 4 - * approximates the root to within about 0.1%. Then Newton's - * iteration is used to converge to an accurate result. - * - * - * - * ACCURACY: - * - * Relative error: - * arithmetic domain # trials peak rms - * IEEE 0,1e38 100000 7.6e-8 2.7e-8 - * - */ -/* cbrt.c */ - -/* -Cephes Math Library Release 2.2: June, 1992 -Copyright 1984, 1987, 1988, 1992 by Stephen L. Moshier -Direct inquiries to 30 Frost Street, Cambridge, MA 02140 -*/ - -/* - Modified for mingwex.a - 2002-07-01 Danny Smith <dannysmith@users.sourceforge.net> - */ -#ifdef __MINGW32__ -#include <math.h> -#include "cephes_mconf.h" -#else -#include "mconf.h" -#endif - -static const float CBRT2 = 1.25992104989487316477; -static const float CBRT4 = 1.58740105196819947475; - -#ifndef __MINGW32__ -#ifdef ANSIC -float frexpf(float, int *), ldexpf(float, int); - -float cbrtf( float xx ) -#else -float frexpf(), ldexpf(); - -float cbrtf(xx) -double xx; -#endif -{ -int e, rem, sign; -float x, z; - -x = xx; - -#else /* __MINGW32__ */ -float cbrtf (float x) -{ -int e, rem, sign; -float z; -#endif /* __MINGW32__ */ - -#ifdef __MINGW32__ -if (!isfinite (x) || x == 0.0F ) - return x; -#else -if( x == 0 ) - return( 0.0 ); -#endif -if( x > 0 ) - sign = 1; -else - { - sign = -1; - x = -x; - } - -z = x; -/* extract power of 2, leaving - * mantissa between 0.5 and 1 - */ -x = frexpf( x, &e ); - -/* Approximate cube root of number between .5 and 1, - * peak relative error = 9.2e-6 - */ -x = (((-0.13466110473359520655053 * x - + 0.54664601366395524503440 ) * x - - 0.95438224771509446525043 ) * x - + 1.1399983354717293273738 ) * x - + 0.40238979564544752126924; - -/* exponent divided by 3 */ -if( e >= 0 ) - { - rem = e; - e /= 3; - rem -= 3*e; - if( rem == 1 ) - x *= CBRT2; - else if( rem == 2 ) - x *= CBRT4; - } - - -/* argument less than 1 */ - -else - { - e = -e; - rem = e; - e /= 3; - rem -= 3*e; - if( rem == 1 ) - x /= CBRT2; - else if( rem == 2 ) - x /= CBRT4; - e = -e; - } - -/* multiply by power of 2 */ -x = ldexpf( x, e ); - -/* Newton iteration */ -x -= ( x - (z/(x*x)) ) * 0.333333333333; - -if( sign < 0 ) - x = -x; -return(x); -} diff --git a/winsup/mingw/mingwex/math/cbrtl.c b/winsup/mingw/mingwex/math/cbrtl.c deleted file mode 100644 index 36bd48f70..000000000 --- a/winsup/mingw/mingwex/math/cbrtl.c +++ /dev/null @@ -1,161 +0,0 @@ -/* cbrtl.c - * - * Cube root, long double precision - * - * - * - * SYNOPSIS: - * - * long double x, y, cbrtl(); - * - * y = cbrtl( x ); - * - * - * - * DESCRIPTION: - * - * Returns the cube root of the argument, which may be negative. - * - * Range reduction involves determining the power of 2 of - * the argument. A polynomial of degree 2 applied to the - * mantissa, and multiplication by the cube root of 1, 2, or 4 - * approximates the root to within about 0.1%. Then Newton's - * iteration is used three times to converge to an accurate - * result. - * - * - * - * ACCURACY: - * - * Relative error: - * arithmetic domain # trials peak rms - * IEEE .125,8 80000 7.0e-20 2.2e-20 - * IEEE exp(+-707) 100000 7.0e-20 2.4e-20 - * - */ - - -/* -Cephes Math Library Release 2.2: January, 1991 -Copyright 1984, 1991 by Stephen L. Moshier -Direct inquiries to 30 Frost Street, Cambridge, MA 02140 -*/ - -/* - Modified for mingwex.a - 2002-07-01 Danny Smith <dannysmith@users.sourceforge.net> - */ -#ifdef __MINGW32__ -#include "cephes_mconf.h" -#else -#include "mconf.h" -#endif - -static const long double CBRT2 = 1.2599210498948731647672L; -static const long double CBRT4 = 1.5874010519681994747517L; -static const long double CBRT2I = 0.79370052598409973737585L; -static const long double CBRT4I = 0.62996052494743658238361L; - -#ifndef __MINGW32__ - -#ifdef ANSIPROT -extern long double frexpl ( long double, int * ); -extern long double ldexpl ( long double, int ); -extern int isnanl ( long double ); -#else -long double frexpl(), ldexpl(); -extern int isnanl(); -#endif - -#ifdef INFINITIES -extern long double INFINITYL; -#endif - -#endif /* __MINGW32__ */ - -long double cbrtl(x) -long double x; -{ -int e, rem, sign; -long double z; - -#ifdef __MINGW32__ -if (!isfinite (x) || x == 0.0L) - return(x); -#else - -#ifdef NANS -if(isnanl(x)) - return(x); -#endif -#ifdef INFINITIES -if( x == INFINITYL) - return(x); -if( x == -INFINITYL) - return(x); -#endif -if( x == 0 ) - return( x ); - -#endif /* __MINGW32__ */ - -if( x > 0 ) - sign = 1; -else - { - sign = -1; - x = -x; - } - -z = x; -/* extract power of 2, leaving - * mantissa between 0.5 and 1 - */ -x = frexpl( x, &e ); - -/* Approximate cube root of number between .5 and 1, - * peak relative error = 1.2e-6 - */ -x = (((( 1.3584464340920900529734e-1L * x - - 6.3986917220457538402318e-1L) * x - + 1.2875551670318751538055e0L) * x - - 1.4897083391357284957891e0L) * x - + 1.3304961236013647092521e0L) * x - + 3.7568280825958912391243e-1L; - -/* exponent divided by 3 */ -if( e >= 0 ) - { - rem = e; - e /= 3; - rem -= 3*e; - if( rem == 1 ) - x *= CBRT2; - else if( rem == 2 ) - x *= CBRT4; - } -else - { /* argument less than 1 */ - e = -e; - rem = e; - e /= 3; - rem -= 3*e; - if( rem == 1 ) - x *= CBRT2I; - else if( rem == 2 ) - x *= CBRT4I; - e = -e; - } - -/* multiply by power of 2 */ -x = ldexpl( x, e ); - -/* Newton iteration */ - -x -= ( x - (z/(x*x)) )*0.3333333333333333333333L; -x -= ( x - (z/(x*x)) )*0.3333333333333333333333L; - -if( sign < 0 ) - x = -x; -return(x); -} diff --git a/winsup/mingw/mingwex/math/ceilf.S b/winsup/mingw/mingwex/math/ceilf.S deleted file mode 100644 index ffcdfc687..000000000 --- a/winsup/mingw/mingwex/math/ceilf.S +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - - .file "ceilf.S" - .text - .align 4 -.globl _ceilf - .def _ceilf; .scl 2; .type 32; .endef -_ceilf: - flds 4(%esp) - subl $8,%esp - - fstcw 4(%esp) /* store fpu control word */ - - /* We use here %edx although only the low 1 bits are defined. - But none of the operations should care and they are faster - than the 16 bit operations. */ - movl $0x0800,%edx /* round towards +oo */ - orl 4(%esp),%edx - andl $0xfbff,%edx - movl %edx,(%esp) - fldcw (%esp) /* load modified control word */ - - frndint /* round */ - - fldcw 4(%esp) /* restore original control word */ - - addl $8,%esp - ret diff --git a/winsup/mingw/mingwex/math/ceill.S b/winsup/mingw/mingwex/math/ceill.S deleted file mode 100644 index 29cb27a62..000000000 --- a/winsup/mingw/mingwex/math/ceill.S +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * Changes for long double by Ulrich Drepper <drepper@cygnus.com> - */ - - - .file "ceill.S" - .text - .align 4 -.globl _ceill - .def _ceill; .scl 2; .type 32; .endef -_ceill: - fldt 4(%esp) - subl $8,%esp - - fstcw 4(%esp) /* store fpu control word */ - - /* We use here %edx although only the low 1 bits are defined. - But none of the operations should care and they are faster - than the 16 bit operations. */ - movl $0x0800,%edx /* round towards +oo */ - orl 4(%esp),%edx - andl $0xfbff,%edx - movl %edx,(%esp) - fldcw (%esp) /* load modified control word */ - - frndint /* round */ - - fldcw 4(%esp) /* restore original control word */ - - addl $8,%esp - ret diff --git a/winsup/mingw/mingwex/math/cephes_mconf.h b/winsup/mingw/mingwex/math/cephes_mconf.h deleted file mode 100644 index ba8400f34..000000000 --- a/winsup/mingw/mingwex/math/cephes_mconf.h +++ /dev/null @@ -1,134 +0,0 @@ -#include <math.h> -#include <errno.h> - -/* constants used by cephes functions */ - -#define MAXNUML 1.189731495357231765021263853E4932L -#define MAXLOGL 1.1356523406294143949492E4L -#define MINLOGL -1.13994985314888605586758E4L -#define LOGE2L 6.9314718055994530941723E-1L -#define LOG2EL 1.4426950408889634073599E0L -#define PIL 3.1415926535897932384626L -#define PIO2L 1.5707963267948966192313L -#define PIO4L 7.8539816339744830961566E-1L - -#define isfinitel isfinite -#define isinfl isinf -#define isnanl isnan -#define signbitl signbit - - -#define IBMPC 1 -#define ANSIPROT 1 -#define MINUSZERO 1 -#define INFINITIES 1 -#define NANS 1 -#define DENORMAL 1 -#define NEGZEROL (-0.0L) -extern long double __INFL; -#define INFINITYL (__INFL) -extern long double __QNANL; -#define NANL (__QNANL) -#define VOLATILE -#define mtherr(fname, code) -#define XPD 0, - -#ifdef _CEPHES_USE_ERRNO -#define _SET_ERRNO(x) errno = (x) -#else -#define _SET_ERRNO(x) -#endif -/* -Cephes Math Library Release 2.2: July, 1992 -Copyright 1984, 1987, 1988, 1992 by Stephen L. Moshier -Direct inquiries to 30 Frost Street, Cambridge, MA 02140 -*/ - - -/* polevll.c - * p1evll.c - * - * Evaluate polynomial - * - * - * - * SYNOPSIS: - * - * int N; - * long double x, y, coef[N+1], polevl[]; - * - * y = polevll( x, coef, N ); - * - * - * - * DESCRIPTION: - * - * Evaluates polynomial of degree N: - * - * 2 N - * y = C + C x + C x +...+ C x - * 0 1 2 N - * - * Coefficients are stored in reverse order: - * - * coef[0] = C , ..., coef[N] = C . - * N 0 - * - * The function p1evll() assumes that coef[N] = 1.0 and is - * omitted from the array. Its calling arguments are - * otherwise the same as polevll(). - * - * - * SPEED: - * - * In the interest of speed, there are no checks for out - * of bounds arithmetic. This routine is used by most of - * the functions in the library. Depending on available - * equipment features, the user may wish to rewrite the - * program in microcode or assembly language. - * - */ - -/* Polynomial evaluator: - * P[0] x^n + P[1] x^(n-1) + ... + P[n] - */ -static __inline__ long double polevll( x, p, n ) -long double x; -const void *p; -int n; -{ -register long double y; -register long double *P = (long double *)p; - -y = *P++; -do - { - y = y * x + *P++; - } -while( --n ); -return(y); -} - - - -/* Polynomial evaluator: - * x^n + P[0] x^(n-1) + P[1] x^(n-2) + ... + P[n] - */ -static __inline__ long double p1evll( x, p, n ) -long double x; -const void *p; -int n; -{ -register long double y; -register long double *P = (long double *)p; - -n -= 1; -y = x + *P++; -do - { - y = y * x + *P++; - } -while( --n ); -return( y ); -} - diff --git a/winsup/mingw/mingwex/math/copysign.S b/winsup/mingw/mingwex/math/copysign.S deleted file mode 100644 index 60d6c72db..000000000 --- a/winsup/mingw/mingwex/math/copysign.S +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - - .file "copysign.S" - .text - .align 4 -.globl _copysign - .def _copysign; .scl 2; .type 32; .endef -_copysign: - movl 16(%esp),%edx - movl 8(%esp),%eax - andl $0x80000000,%edx - andl $0x7fffffff,%eax - orl %edx,%eax - movl %eax,8(%esp) - fldl 4(%esp) - ret diff --git a/winsup/mingw/mingwex/math/copysignf.S b/winsup/mingw/mingwex/math/copysignf.S deleted file mode 100644 index 8a60c463c..000000000 --- a/winsup/mingw/mingwex/math/copysignf.S +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - - .file "copysignf.S" - .text - .align 4 -.globl _copysignf - .def _copysignf; .scl 2; .type 32; .endef -_copysignf: - movl 8(%esp),%edx - movl 4(%esp),%eax - andl $0x80000000,%edx - andl $0x7fffffff,%eax - orl %edx,%eax - movl %eax,4(%esp) - flds 4(%esp) - ret diff --git a/winsup/mingw/mingwex/math/copysignl.S b/winsup/mingw/mingwex/math/copysignl.S deleted file mode 100644 index 4143b37f8..000000000 --- a/winsup/mingw/mingwex/math/copysignl.S +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Changes for long double by Ulrich Drepper <drepper@cygnus.com> - * Public domain. - */ - - .file "copysignl.S" - .text - .align 4 -.globl _copysignl - .def _copysignl; .scl 2; .type 32; .endef -_copysignl: - movl 24(%esp),%edx - movl 12(%esp),%eax - andl $0x8000,%edx - andl $0x7fff,%eax - orl %edx,%eax - movl %eax,12(%esp) - fldt 4(%esp) - ret diff --git a/winsup/mingw/mingwex/math/cosf.S b/winsup/mingw/mingwex/math/cosf.S deleted file mode 100644 index 862f6ce6c..000000000 --- a/winsup/mingw/mingwex/math/cosf.S +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Removed glibc header dependancy by Danny Smith - * <dannysmith@users.sourceforge.net> - */ - .file "cosf.S" - .text - .align 4 -.globl _cosl - .def _cosf; .scl 2; .type 32; .endef -_cosf: - flds 4(%esp) - fcos - fnstsw %ax - testl $0x400,%eax - jnz 1f - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fnstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fcos - ret diff --git a/winsup/mingw/mingwex/math/coshf.c b/winsup/mingw/mingwex/math/coshf.c deleted file mode 100644 index 4e44f0811..000000000 --- a/winsup/mingw/mingwex/math/coshf.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <math.h> -float coshf (float x) - {return (float) cosh (x);} diff --git a/winsup/mingw/mingwex/math/coshl.c b/winsup/mingw/mingwex/math/coshl.c deleted file mode 100644 index c698e50c0..000000000 --- a/winsup/mingw/mingwex/math/coshl.c +++ /dev/null @@ -1,110 +0,0 @@ -/* coshl.c - * - * Hyperbolic cosine, long double precision - * - * - * - * SYNOPSIS: - * - * long double x, y, coshl(); - * - * y = coshl( x ); - * - * - * - * DESCRIPTION: - * - * Returns hyperbolic cosine of argument in the range MINLOGL to - * MAXLOGL. - * - * cosh(x) = ( exp(x) + exp(-x) )/2. - * - * - * - * ACCURACY: - * - * Relative error: - * arithmetic domain # trials peak rms - * IEEE +-10000 30000 1.1e-19 2.8e-20 - * - * - * ERROR MESSAGES: - * - * message condition value returned - * cosh overflow |x| > MAXLOGL+LOGE2L INFINITYL - * - * - */ - - -/* -Cephes Math Library Release 2.7: May, 1998 -Copyright 1985, 1991, 1998 by Stephen L. Moshier -*/ - -/* -Modified for mingw -2002-07-22 Danny Smith <dannysmith@users.sourceforge.net> -*/ - -#ifdef __MINGW32__ -#include "cephes_mconf.h" -#else -#include "mconf.h" -#endif - -#ifndef _SET_ERRNO -#define _SET_ERRNO(x) -#endif - - -#ifndef __MINGW32__ -extern long double MAXLOGL, MAXNUML, LOGE2L; -#ifdef ANSIPROT -extern long double expl ( long double ); -extern int isnanl ( long double ); -#else -long double expl(), isnanl(); -#endif -#ifdef INFINITIES -extern long double INFINITYL; -#endif -#ifdef NANS -extern long double NANL; -#endif -#endif /* __MINGW32__ */ - -long double coshl(x) -long double x; -{ -long double y; - -#ifdef NANS -if( isnanl(x) ) - { - _SET_ERRNO(EDOM); - return(x); - } -#endif -if( x < 0 ) - x = -x; -if( x > (MAXLOGL + LOGE2L) ) - { - mtherr( "coshl", OVERFLOW ); - _SET_ERRNO(ERANGE); -#ifdef INFINITIES - return( INFINITYL ); -#else - return( MAXNUML ); -#endif - } -if( x >= (MAXLOGL - LOGE2L) ) - { - y = expl(0.5L * x); - y = (0.5L * y) * y; - return(y); - } -y = expl(x); -y = 0.5L * (y + 1.0L / y); -return( y ); -} diff --git a/winsup/mingw/mingwex/math/cosl.S b/winsup/mingw/mingwex/math/cosl.S deleted file mode 100644 index 59d9858b3..000000000 --- a/winsup/mingw/mingwex/math/cosl.S +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - * Removed glibc header dependancy by Danny Smith - * <dannysmith@users.sourceforge.net> - */ - .file "cosl.S" - .text - .align 4 -.globl _cosl - .def _cosl; .scl 2; .type 32; .endef -_cosl: - fldt 4(%esp) - fcos - fnstsw %ax - testl $0x400,%eax - jnz 1f - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fnstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fcos - ret diff --git a/winsup/mingw/mingwex/math/exp2.S b/winsup/mingw/mingwex/math/exp2.S deleted file mode 100644 index 320065726..000000000 --- a/winsup/mingw/mingwex/math/exp2.S +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Adapted for exp2 by Ulrich Drepper <drepper@cygnus.com>. - * Public domain. - */ - - .file "exp2.S" - .text - .align 4 -.globl _exp2 - .def _exp2; .scl 2; .type 32; .endef -_exp2: - fldl 4(%esp) -/* I added the following ugly construct because exp(+-Inf) resulted - in NaN. The ugliness results from the bright minds at Intel. - For the i686 the code can be written better. - -- drepper@cygnus.com. */ - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - fld %st - frndint /* int(x) */ - fsubr %st,%st(1) /* fract(x) */ - fxch - f2xm1 /* 2^(fract(x)) - 1 */ - fld1 - faddp /* 2^(fract(x)) */ - fscale /* e^x */ - fstp %st(1) - ret - -1: testl $0x200, %eax /* Test sign. */ - jz 2f /* If positive, jump. */ - fstp %st - fldz /* Set result to 0. */ -2: ret diff --git a/winsup/mingw/mingwex/math/exp2f.S b/winsup/mingw/mingwex/math/exp2f.S deleted file mode 100644 index 0707a0cc6..000000000 --- a/winsup/mingw/mingwex/math/exp2f.S +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Adapted for exp2 by Ulrich Drepper <drepper@cygnus.com>. - * Public domain. - */ - - .file "exp2f.S" - .text - .align 4 -.globl _exp2f - .def _exp2f; .scl 2; .type 32; .endef -_exp2f: - flds 4(%esp) -/* I added the following ugly construct because exp(+-Inf) resulted - in NaN. The ugliness results from the bright minds at Intel. - For the i686 the code can be written better. - -- drepper@cygnus.com. */ - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - fld %st - frndint /* int(x) */ - fsubr %st,%st(1) /* fract(x) */ - fxch - f2xm1 /* 2^(fract(x)) - 1 */ - fld1 - faddp /* 2^(fract(x)) */ - fscale /* e^x */ - fstp %st(1) - ret - -1: testl $0x200, %eax /* Test sign. */ - jz 2f /* If positive, jump. */ - fstp %st - fldz /* Set result to 0. */ -2: ret diff --git a/winsup/mingw/mingwex/math/exp2l.S b/winsup/mingw/mingwex/math/exp2l.S deleted file mode 100644 index 2457c26f4..000000000 --- a/winsup/mingw/mingwex/math/exp2l.S +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Adapted for exp2 by Ulrich Drepper <drepper@cygnus.com>. - * Public domain. - */ - - .file "exp2l.S" - .text - .align 4 -.globl _exp2l - .def _exp2l; .scl 2; .type 32; .endef -_exp2l: - fldt 4(%esp) -/* I added the following ugly construct because exp(+-Inf) resulted - in NaN. The ugliness results from the bright minds at Intel. - For the i686 the code can be written better. - -- drepper@cygnus.com. */ - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - fld %st - frndint /* int(x) */ - fsubr %st,%st(1) /* fract(x) */ - fxch - f2xm1 /* 2^(fract(x)) - 1 */ - fld1 - faddp /* 2^(fract(x)) */ - fscale /* e^x */ - fstp %st(1) - ret - -1: testl $0x200, %eax /* Test sign. */ - jz 2f /* If positive, jump. */ - fstp %st - fldz /* Set result to 0. */ -2: ret diff --git a/winsup/mingw/mingwex/math/expf.c b/winsup/mingw/mingwex/math/expf.c deleted file mode 100644 index e56e0bc6e..000000000 --- a/winsup/mingw/mingwex/math/expf.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <math.h> -float expf (float x) - {return (float) exp (x);} diff --git a/winsup/mingw/mingwex/math/expl.c b/winsup/mingw/mingwex/math/expl.c deleted file mode 100644 index 5f8face2c..000000000 --- a/winsup/mingw/mingwex/math/expl.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - */ - -/* - * The 8087 method for the exponential function is to calculate - * exp(x) = 2^(x log2(e)) - * after separating integer and fractional parts - * x log2(e) = i + f, |f| <= .5 - * 2^i is immediate but f needs to be precise for long double accuracy. - * Suppress range reduction error in computing f by the following. - * Separate x into integer and fractional parts - * x = xi + xf, |xf| <= .5 - * Separate log2(e) into the sum of an exact number c0 and small part c1. - * c0 + c1 = log2(e) to extra precision - * Then - * f = (c0 xi - i) + c0 xf + c1 x - * where c0 xi is exact and so also is (c0 xi - i). - * -- moshier@na-net.ornl.gov - */ - -#include <math.h> - -static long double c0 = 1.44268798828125L; -static long double c1 = 7.05260771340735992468e-6L; - -long double -expl (long double x) -{ - long double res; - -/* I added the following ugly construct because expl(+-Inf) resulted - in NaN. The ugliness results from the bright minds at Intel. - For the i686 the code can be written better. - -- drepper@cygnus.com. */ - asm ("fxam\n\t" /* Is NaN or +-Inf? */ - "fstsw %%ax\n\t" - "movb $0x45, %%dh\n\t" - "andb %%ah, %%dh\n\t" - "cmpb $0x05, %%dh\n\t" - "je 1f\n\t" /* Is +-Inf, jump. */ - "fldl2e\n\t" /* 1 log2(e) */ - "fmul %%st(1),%%st\n\t" /* 1 x log2(e) */ - "frndint\n\t" /* 1 i */ - "fld %%st(1)\n\t" /* 2 x */ - "frndint\n\t" /* 2 xi */ - "fld %%st(1)\n\t" /* 3 i */ - "fldt %2\n\t" /* 4 c0 */ - "fld %%st(2)\n\t" /* 5 xi */ - "fmul %%st(1),%%st\n\t" /* 5 c0 xi */ - "fsubp %%st,%%st(2)\n\t" /* 4 f = c0 xi - i */ - "fld %%st(4)\n\t" /* 5 x */ - "fsub %%st(3),%%st\n\t" /* 5 xf = x - xi */ - "fmulp %%st,%%st(1)\n\t" /* 4 c0 xf */ - "faddp %%st,%%st(1)\n\t" /* 3 f = f + c0 xf */ - "fldt %3\n\t" /* 4 */ - "fmul %%st(4),%%st\n\t" /* 4 c1 * x */ - "faddp %%st,%%st(1)\n\t" /* 3 f = f + c1 * x */ - "f2xm1\n\t" /* 3 2^(fract(x * log2(e))) - 1 */ - "fld1\n\t" /* 4 1.0 */ - "faddp\n\t" /* 3 2^(fract(x * log2(e))) */ - "fstp %%st(1)\n\t" /* 2 */ - "fscale\n\t" /* 2 scale factor is st(1); e^x */ - "fstp %%st(1)\n\t" /* 1 */ - "fstp %%st(1)\n\t" /* 0 */ - "jmp 2f\n\t" - "1:\ttestl $0x200, %%eax\n\t" /* Test sign. */ - "jz 2f\n\t" /* If positive, jump. */ - "fstp %%st\n\t" - "fldz\n\t" /* Set result to 0. */ - "2:\t\n" - : "=t" (res) : "0" (x), "m" (c0), "m" (c1) : "ax", "dx"); - return res; -} diff --git a/winsup/mingw/mingwex/math/fabs.c b/winsup/mingw/mingwex/math/fabs.c deleted file mode 100644 index c2074e8cb..000000000 --- a/winsup/mingw/mingwex/math/fabs.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <math.h> - -double -fabs (double x) -{ - double res; - - asm ("fabs;" : "=t" (res) : "0" (x)); - return res; -} diff --git a/winsup/mingw/mingwex/math/fabsf.c b/winsup/mingw/mingwex/math/fabsf.c deleted file mode 100644 index 6580f955c..000000000 --- a/winsup/mingw/mingwex/math/fabsf.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <math.h> - -float -fabsf (float x) -{ - float res; - asm ("fabs;" : "=t" (res) : "0" (x)); - return res; -} diff --git a/winsup/mingw/mingwex/math/fabsl.c b/winsup/mingw/mingwex/math/fabsl.c deleted file mode 100644 index eead724d4..000000000 --- a/winsup/mingw/mingwex/math/fabsl.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <math.h> - -long double -fabsl (long double x) -{ - long double res; - asm ("fabs;" : "=t" (res) : "0" (x)); - return res; -} diff --git a/winsup/mingw/mingwex/math/fdim.c b/winsup/mingw/mingwex/math/fdim.c deleted file mode 100644 index 330b09241..000000000 --- a/winsup/mingw/mingwex/math/fdim.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -double -fdim (double x, double y) -{ - return (isgreater(x, y) ? (x - y) : 0.0); -} diff --git a/winsup/mingw/mingwex/math/fdimf.c b/winsup/mingw/mingwex/math/fdimf.c deleted file mode 100644 index 02bfc6e5e..000000000 --- a/winsup/mingw/mingwex/math/fdimf.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -float -fdimf (float x, float y) -{ - return (isgreater(x, y) ? (x - y) : 0.0F); -} diff --git a/winsup/mingw/mingwex/math/fdiml.c b/winsup/mingw/mingwex/math/fdiml.c deleted file mode 100644 index 1c3d0aaaa..000000000 --- a/winsup/mingw/mingwex/math/fdiml.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -long double -fdiml (long double x, long double y) -{ - return (isgreater(x, y) ? (x - y) : 0.0L); -} diff --git a/winsup/mingw/mingwex/math/floorf.S b/winsup/mingw/mingwex/math/floorf.S deleted file mode 100644 index 8ae8100a7..000000000 --- a/winsup/mingw/mingwex/math/floorf.S +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Changes for long double by Ulrich Drepper <drepper@cygnus.com> - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - .file "floorf.S" - .text - .align 4 -.globl _floorf - .def _floorf; .scl 2; .type 32; .endef -_floorf: - flds 4(%esp) - subl $8,%esp - - fstcw 4(%esp) /* store fpu control word */ - - /* We use here %edx although only the low 1 bits are defined. - But none of the operations should care and they are faster - than the 16 bit operations. */ - movl $0x400,%edx /* round towards -oo */ - orl 4(%esp),%edx - andl $0xf7ff,%edx - movl %edx,(%esp) - fldcw (%esp) /* load modified control word */ - - frndint /* round */ - - fldcw 4(%esp) /* restore original control word */ - - addl $8,%esp - ret diff --git a/winsup/mingw/mingwex/math/floorl.S b/winsup/mingw/mingwex/math/floorl.S deleted file mode 100644 index 5ab9214b5..000000000 --- a/winsup/mingw/mingwex/math/floorl.S +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Changes for long double by Ulrich Drepper <drepper@cygnus.com> - * - */ - .file "floorl.S" - .text - .align 4 -.globl _floorl - .def _floorl; .scl 2; .type 32; .endef -_floorl: - fldt 4(%esp) - subl $8,%esp - - fstcw 4(%esp) /* store fpu control word */ - - /* We use here %edx although only the low 1 bits are defined. - But none of the operations should care and they are faster - than the 16 bit operations. */ - movl $0x400,%edx /* round towards -oo */ - orl 4(%esp),%edx - andl $0xf7ff,%edx - movl %edx,(%esp) - fldcw (%esp) /* load modified control word */ - - frndint /* round */ - - fldcw 4(%esp) /* restore original control word */ - - addl $8,%esp - ret diff --git a/winsup/mingw/mingwex/math/fma.S b/winsup/mingw/mingwex/math/fma.S deleted file mode 100644 index d6226653c..000000000 --- a/winsup/mingw/mingwex/math/fma.S +++ /dev/null @@ -1,12 +0,0 @@ - .file "fma.S" - .text - .align 2 - .p2align 4,,15 -.globl _fma - .def _fma; .scl 2; .type 32; .endef -_fma: - fldl 4(%esp) - fmull 12(%esp) - fldl 20(%esp) - faddp - ret diff --git a/winsup/mingw/mingwex/math/fmaf.S b/winsup/mingw/mingwex/math/fmaf.S deleted file mode 100644 index 0d64ac2f1..000000000 --- a/winsup/mingw/mingwex/math/fmaf.S +++ /dev/null @@ -1,12 +0,0 @@ - .file "fmaf.S" - .text - .align 2 - .p2align 4,,15 -.globl _fmaf - .def _fmaf; .scl 2; .type 32; .endef -_fmaf: - flds 4(%esp) - fmuls 8(%esp) - flds 12(%esp) - faddp - ret diff --git a/winsup/mingw/mingwex/math/fmal.c b/winsup/mingw/mingwex/math/fmal.c deleted file mode 100644 index 1fbd41d28..000000000 --- a/winsup/mingw/mingwex/math/fmal.c +++ /dev/null @@ -1,5 +0,0 @@ -long double -fmal ( long double _x, long double _y, long double _z) -{ - return ((_x * _y) + _z); -} diff --git a/winsup/mingw/mingwex/math/fmax.c b/winsup/mingw/mingwex/math/fmax.c deleted file mode 100644 index 35c1f45e5..000000000 --- a/winsup/mingw/mingwex/math/fmax.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -double -fmax (double _x, double _y) -{ - return ( isgreaterequal (_x, _y)|| __isnan (_y) ? _x : _y ); -} diff --git a/winsup/mingw/mingwex/math/fmaxf.c b/winsup/mingw/mingwex/math/fmaxf.c deleted file mode 100644 index 079a7e746..000000000 --- a/winsup/mingw/mingwex/math/fmaxf.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -float -fmaxf (float _x, float _y) -{ - return (( isgreaterequal(_x, _y) || __isnanf (_y)) ? _x : _y ); -} diff --git a/winsup/mingw/mingwex/math/fmaxl.c b/winsup/mingw/mingwex/math/fmaxl.c deleted file mode 100644 index 4e38da476..000000000 --- a/winsup/mingw/mingwex/math/fmaxl.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -long double -fmaxl (long double _x, long double _y) -{ - return (( isgreaterequal(_x, _y) || __isnanl (_y)) ? _x : _y ); -} diff --git a/winsup/mingw/mingwex/math/fmin.c b/winsup/mingw/mingwex/math/fmin.c deleted file mode 100644 index 96a6ed111..000000000 --- a/winsup/mingw/mingwex/math/fmin.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -double -fmin (double _x, double _y) -{ - return ((islessequal(_x, _y) || __isnan (_y)) ? _x : _y ); -} diff --git a/winsup/mingw/mingwex/math/fminf.c b/winsup/mingw/mingwex/math/fminf.c deleted file mode 100644 index f3d71480d..000000000 --- a/winsup/mingw/mingwex/math/fminf.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -float -fminf (float _x, float _y) -{ - return ((islessequal(_x, _y) || _isnan (_y)) ? _x : _y ); -} diff --git a/winsup/mingw/mingwex/math/fminl.c b/winsup/mingw/mingwex/math/fminl.c deleted file mode 100644 index d8a3fea2c..000000000 --- a/winsup/mingw/mingwex/math/fminl.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -long double -fminl (long double _x, long double _y) -{ - return ((islessequal(_x, _y) || __isnanl (_y)) ? _x : _y ); -} diff --git a/winsup/mingw/mingwex/math/fmodf.c b/winsup/mingw/mingwex/math/fmodf.c deleted file mode 100644 index 6405d725f..000000000 --- a/winsup/mingw/mingwex/math/fmodf.c +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for float type by Danny Smith - * <dannysmith@users.sourceforge.net>. - */ - -#include <math.h> - -float -fmodf (float x, float y) -{ - float res; - - asm ("1:\tfprem\n\t" - "fstsw %%ax\n\t" - "sahf\n\t" - "jp 1b\n\t" - "fstp %%st(1)" - : "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)"); - return res; -} diff --git a/winsup/mingw/mingwex/math/fmodl.c b/winsup/mingw/mingwex/math/fmodl.c deleted file mode 100644 index f1c97f10b..000000000 --- a/winsup/mingw/mingwex/math/fmodl.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - */ - -#include <math.h> - -long double -fmodl (long double x, long double y) -{ - long double res; - - asm ("1:\tfprem\n\t" - "fstsw %%ax\n\t" - "sahf\n\t" - "jp 1b\n\t" - "fstp %%st(1)" - : "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)"); - return res; -} diff --git a/winsup/mingw/mingwex/math/fp_consts.c b/winsup/mingw/mingwex/math/fp_consts.c deleted file mode 100644 index 285c9d7dc..000000000 --- a/winsup/mingw/mingwex/math/fp_consts.c +++ /dev/null @@ -1,14 +0,0 @@ - -#include "fp_consts.h" -const union _ieee_rep __QNAN = { __DOUBLE_QNAN_REP }; -const union _ieee_rep __SNAN = { __DOUBLE_SNAN_REP }; -const union _ieee_rep __INF = { __DOUBLE_INF_REP }; -const union _ieee_rep __DENORM = { __DOUBLE_DENORM_REP }; - -/* ISO C99 */ -#undef nan -/* FIXME */ -double nan (const char * tagp __attribute__((unused)) ) - { return __QNAN.double_val; } - - diff --git a/winsup/mingw/mingwex/math/fp_consts.h b/winsup/mingw/mingwex/math/fp_consts.h deleted file mode 100644 index 249339501..000000000 --- a/winsup/mingw/mingwex/math/fp_consts.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef _FP_CONSTS_H -#define _FP_CONSTS_H - -/* -According to IEEE 754 a QNaN has exponent bits of all 1 values and -initial significand bit of 1. A SNaN has has an exponent of all 1 -values and initial significand bit of 0 (with one or more other -significand bits of 1). An Inf has significand of 0 and -exponent of all 1 values. A denormal value has all exponent bits of 0. - -The following does _not_ follow those rules, but uses values -equal to those exported from MS C++ runtime lib, msvcprt.dll -for float and double. MSVC however, does not have long doubles. -*/ - - -#define __DOUBLE_INF_REP { 0, 0, 0, 0x7ff0 } -#define __DOUBLE_QNAN_REP { 0, 0, 0, 0xfff8 } /* { 0, 0, 0, 0x7ff8 } */ -#define __DOUBLE_SNAN_REP { 0, 0, 0, 0xfff0 } /* { 1, 0, 0, 0x7ff0 } */ -#define __DOUBLE_DENORM_REP {1, 0, 0, 0} - -#define D_NAN_MASK 0x7ff0000000000000LL /* this will mask NaN's and Inf's */ - -#define __FLOAT_INF_REP { 0, 0x7f80 } -#define __FLOAT_QNAN_REP { 0, 0xffc0 } /* { 0, 0x7fc0 } */ -#define __FLOAT_SNAN_REP { 0, 0xff80 } /* { 1, 0x7f80 } */ -#define __FLOAT_DENORM_REP {1,0} - -#define F_NAN_MASK 0x7f800000 - -/* - This assumes no implicit (hidden) bit in extended mode. - Padded to 96 bits - */ -#define __LONG_DOUBLE_INF_REP { 0, 0, 0, 0x8000, 0x7fff, 0 } -#define __LONG_DOUBLE_QNAN_REP { 0, 0, 0, 0xc000, 0xffff, 0 } -#define __LONG_DOUBLE_SNAN_REP { 0, 0, 0, 0x8000, 0xffff, 0 } -#define __LONG_DOUBLE_DENORM_REP {1, 0, 0, 0, 0, 0} - -union _ieee_rep -{ - unsigned short rep[6]; - float float_val; - double double_val; - long double ldouble_val; -} ; - -#endif diff --git a/winsup/mingw/mingwex/math/fp_constsf.c b/winsup/mingw/mingwex/math/fp_constsf.c deleted file mode 100644 index 5a4afef2b..000000000 --- a/winsup/mingw/mingwex/math/fp_constsf.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "fp_consts.h" - -const union _ieee_rep __QNANF = { __FLOAT_QNAN_REP }; -const union _ieee_rep __SNANF = { __FLOAT_SNAN_REP }; -const union _ieee_rep __INFF = { __FLOAT_INF_REP }; -const union _ieee_rep __DENORMF = { __FLOAT_DENORM_REP }; - -/* ISO C99 */ -#undef nanf -/* FIXME */ -float nanf(const char * tagp __attribute__((unused)) ) - { return __QNANF.float_val;} diff --git a/winsup/mingw/mingwex/math/fp_constsl.c b/winsup/mingw/mingwex/math/fp_constsl.c deleted file mode 100644 index 44fdb7fd3..000000000 --- a/winsup/mingw/mingwex/math/fp_constsl.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "fp_consts.h" - -const union _ieee_rep __QNANL = { __LONG_DOUBLE_QNAN_REP }; -const union _ieee_rep __SNANL = { __LONG_DOUBLE_SNAN_REP }; -const union _ieee_rep __INFL = { __LONG_DOUBLE_INF_REP }; -const union _ieee_rep __DENORML = { __LONG_DOUBLE_DENORM_REP }; - - -#undef nanl -/* FIXME */ -long double nanl (const char * tagp __attribute__((unused)) ) - { return __QNANL.ldouble_val; } diff --git a/winsup/mingw/mingwex/math/fpclassify.c b/winsup/mingw/mingwex/math/fpclassify.c deleted file mode 100644 index f8cd8cb44..000000000 --- a/winsup/mingw/mingwex/math/fpclassify.c +++ /dev/null @@ -1,20 +0,0 @@ -#include <math.h> - -/* 'fxam' sets FPU flags C3,C2,C0 'fstsw' stores: - FP_NAN 001 0x0100 - FP_NORMAL 010 0x0400 - FP_INFINITE 011 0x0500 - FP_ZERO 100 0x4000 - FP_SUBNORMAL 110 0x4400 - -and sets C1 flag (signbit) if neg */ - -int __fpclassify (double _x){ - unsigned short sw; - __asm__ ( - "fxam; fstsw %%ax;" - : "=a" (sw) - : "t" (_x) - ); - return sw & (FP_NAN | FP_NORMAL | FP_ZERO ); -} diff --git a/winsup/mingw/mingwex/math/fpclassifyf.c b/winsup/mingw/mingwex/math/fpclassifyf.c deleted file mode 100644 index aca4e59f1..000000000 --- a/winsup/mingw/mingwex/math/fpclassifyf.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <math.h> -int __fpclassifyf (float _x){ - unsigned short sw; - __asm__ ( - "fxam; fstsw %%ax;" - : "=a" (sw) - : "t" (_x) - ); - return sw & (FP_NAN | FP_NORMAL | FP_ZERO ); -} diff --git a/winsup/mingw/mingwex/math/fpclassifyl.c b/winsup/mingw/mingwex/math/fpclassifyl.c deleted file mode 100644 index 9979d6278..000000000 --- a/winsup/mingw/mingwex/math/fpclassifyl.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <math.h> -int __fpclassifyl (long double _x){ - unsigned short sw; - __asm__ ( - "fxam; fstsw %%ax;" - : "=a" (sw) - : "t" (_x) - ); - return sw & (FP_NAN | FP_NORMAL | FP_ZERO ); -} diff --git a/winsup/mingw/mingwex/math/frexpf.c b/winsup/mingw/mingwex/math/frexpf.c deleted file mode 100644 index df262abc5..000000000 --- a/winsup/mingw/mingwex/math/frexpf.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <math.h> -float frexpf (float x, int* expn) - {return (float)frexp(x, expn);} diff --git a/winsup/mingw/mingwex/math/frexpl.S b/winsup/mingw/mingwex/math/frexpl.S deleted file mode 100644 index 2b691c87f..000000000 --- a/winsup/mingw/mingwex/math/frexpl.S +++ /dev/null @@ -1,71 +0,0 @@ -/* - Cephes Math Library Release 2.7: May, 1998 - Copyright 1984, 1987, 1988, 1992, 1998 by Stephen L. Moshier - - Extracted from floorl.387 for use in libmingwex.a by - Danny Smith <dannysmith@users.sourceforge.net> - 2002-06-20 -*/ - -/* - * frexpl(long double x, int* expnt) extracts the exponent from x. - * It returns an integer power of two to expnt and the significand - * between 0.5 and 1 to y. Thus x = y * 2**expn. - */ - .align 2 -.globl _frexpl -_frexpl: - pushl %ebp - movl %esp,%ebp - subl $24,%esp - pushl %esi - pushl %ebx - fldt 8(%ebp) - movl 20(%ebp),%ebx - fld %st(0) - fstpt -12(%ebp) - leal -4(%ebp),%ecx - movw -4(%ebp),%dx - andl $32767,%edx - jne L25 - fldz - fucompp - fnstsw %ax - andb $68,%ah - xorb $64,%ah - jne L21 - movl $0,(%ebx) - fldz - jmp L24 - .align 2,0x90 - .align 2,0x90 -L21: - fldt -12(%ebp) - fadd %st(0),%st - fstpt -12(%ebp) - decl %edx - movw (%ecx),%si - andl $32767,%esi - jne L22 - cmpl $-66,%edx - jg L21 -L22: - addl %esi,%edx - jmp L19 - .align 2,0x90 -L25: - fstp %st(0) -L19: - addl $-16382,%edx - movl %edx,(%ebx) - movw (%ecx),%ax - andl $-32768,%eax - orl $16382,%eax - movw %ax,(%ecx) - fldt -12(%ebp) -L24: - leal -32(%ebp),%esp - popl %ebx - popl %esi - leave - ret diff --git a/winsup/mingw/mingwex/math/fucom.c b/winsup/mingw/mingwex/math/fucom.c deleted file mode 100644 index 80c937262..000000000 --- a/winsup/mingw/mingwex/math/fucom.c +++ /dev/null @@ -1,11 +0,0 @@ -int -__fp_unordered_compare (long double x, long double y){ - unsigned short retval; - __asm__ ( - "fucom %%st(1);" - "fnstsw;" - : "=a" (retval) - : "t" (x), "u" (y) - ); - return retval; -} diff --git a/winsup/mingw/mingwex/math/hypotf.c b/winsup/mingw/mingwex/math/hypotf.c deleted file mode 100644 index ee67a45dc..000000000 --- a/winsup/mingw/mingwex/math/hypotf.c +++ /dev/null @@ -1,4 +0,0 @@ -#include <math.h> - -float hypotf (float x, float y) - { return (float) _hypot (x, y);} diff --git a/winsup/mingw/mingwex/math/hypotl.c b/winsup/mingw/mingwex/math/hypotl.c deleted file mode 100644 index 2a25b82c3..000000000 --- a/winsup/mingw/mingwex/math/hypotl.c +++ /dev/null @@ -1,73 +0,0 @@ -#include <math.h> -#include <float.h> -#include <errno.h> - -/* -This implementation is based largely on Cephes library -function cabsl (cmplxl.c), which bears the following notice: - -Cephes Math Library Release 2.1: January, 1989 -Copyright 1984, 1987, 1989 by Stephen L. Moshier -Direct inquiries to 30 Frost Street, Cambridge, MA 02140 -*/ - -/* - Modified for use in libmingwex.a - 02 Sept 2002 Danny Smith <dannysmith@users.sourceforege.net> - Calls to ldexpl replaced by logbl and calls to frexpl replaced - by scalbnl to avoid duplicated range checks. -*/ - -extern long double __INFL; -#define PRECL 32 - -long double -hypotl (long double x, long double y) -{ - int exx; - int eyy; - int scale; - long double xx =fabsl(x); - long double yy =fabsl(y); - if (!isfinite(xx) || !isfinite(yy)) - return xx + yy; /* Return INF or NAN. */ - - if (xx == 0.0L) - return yy; - if (yy == 0.0L) - return xx; - - /* Get exponents */ - exx = logbl (xx); - eyy = logbl (yy); - - /* Check if large differences in scale */ - scale = exx - eyy; - if ( scale > PRECL) - return xx; - if ( scale < -PRECL) - return yy; - - /* Exponent of approximate geometric mean (x 2) */ - scale = (exx + eyy) >> 1; - - /* Rescale: Geometric mean is now about 2 */ - x = scalbnl(xx, -scale); - y = scalbnl(yy, -scale); - - xx = sqrtl(x * x + y * y); - - /* Check for overflow and underflow */ - exx = logbl(xx); - exx += scale; - if (exx > LDBL_MAX_EXP) - { - errno = ERANGE; - return __INFL; - } - if (exx < LDBL_MIN_EXP) - return 0.0L; - - /* Undo scaling */ - return (scalbnl (xx, scale)); -} diff --git a/winsup/mingw/mingwex/math/ilogb.S b/winsup/mingw/mingwex/math/ilogb.S deleted file mode 100644 index 2335b5146..000000000 --- a/winsup/mingw/mingwex/math/ilogb.S +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - - - .file "ilogb.S" - .text - .align 4 -.globl _ilogb - .def _ilogb; .scl 2; .type 32; .endef -_ilogb: - - fldl 4(%esp) -/* I added the following ugly construct because ilogb(+-Inf) is - required to return INT_MAX in ISO C99. - -- jakub@redhat.com. */ - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - - fxtract - pushl %eax - fstp %st - - fistpl (%esp) - fwait - popl %eax - - ret - -1: fstp %st - movl $0x7fffffff, %eax - ret diff --git a/winsup/mingw/mingwex/math/ilogbf.S b/winsup/mingw/mingwex/math/ilogbf.S deleted file mode 100644 index fa3e78e84..000000000 --- a/winsup/mingw/mingwex/math/ilogbf.S +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - - .file "ilogbf.S" - .text - .align 4 -.globl _ilogbf - .def _ilogbf; .scl 2; .type 32; .endef -_ilogbf: - flds 4(%esp) -/* I added the following ugly construct because ilogb(+-Inf) is - required to return INT_MAX in ISO C99. - -- jakub@redhat.com. */ - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - - fxtract - pushl %eax - fstp %st - - fistpl (%esp) - fwait - popl %eax - - ret - -1: fstp %st - movl $0x7fffffff, %eax - ret diff --git a/winsup/mingw/mingwex/math/ilogbl.S b/winsup/mingw/mingwex/math/ilogbl.S deleted file mode 100644 index b9dc6ea72..000000000 --- a/winsup/mingw/mingwex/math/ilogbl.S +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Changes for long double by Ulrich Drepper <drepper@cygnus.com> - * Public domain. - */ - - .file "ilogbl.S" - .text - .align 4 -.globl _ilogbl - .def _ilogbl; .scl 2; .type 32; .endef -_ilogbl: - fldt 4(%esp) -/* I added the following ugly construct because ilogb(+-Inf) is - required to return INT_MAX in ISO C99. - -- jakub@redhat.com. */ - fxam /* Is NaN or +-Inf? */ - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 1f /* Is +-Inf, jump. */ - - fxtract - pushl %eax - fstp %st - - fistpl (%esp) - fwait - popl %eax - - ret - -1: fstp %st - movl $0x7fffffff, %eax - ret diff --git a/winsup/mingw/mingwex/math/isnan.c b/winsup/mingw/mingwex/math/isnan.c deleted file mode 100644 index b38bc290e..000000000 --- a/winsup/mingw/mingwex/math/isnan.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> - -int -__isnan (double _x) -{ - unsigned short _sw; - __asm__ ("fxam;" - "fstsw %%ax": "=a" (_sw) : "t" (_x)); - return (_sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL)) - == FP_NAN; -} - -#undef isnan -int __attribute__ ((alias ("__isnan"))) isnan (double); diff --git a/winsup/mingw/mingwex/math/isnanf.c b/winsup/mingw/mingwex/math/isnanf.c deleted file mode 100644 index 73fe0eb02..000000000 --- a/winsup/mingw/mingwex/math/isnanf.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <math.h> -int -__isnanf (float _x) -{ - unsigned short _sw; - __asm__ ("fxam;" - "fstsw %%ax": "=a" (_sw) : "t" (_x) ); - return (_sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL)) - == FP_NAN; -} - -int __attribute__ ((alias ("__isnanf"))) isnanf (float); diff --git a/winsup/mingw/mingwex/math/isnanl.c b/winsup/mingw/mingwex/math/isnanl.c deleted file mode 100644 index 86d0088b4..000000000 --- a/winsup/mingw/mingwex/math/isnanl.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <math.h> - -int -__isnanl (long double _x) -{ - unsigned short _sw; - __asm__ ("fxam;" - "fstsw %%ax": "=a" (_sw) : "t" (_x)); - return (_sw & (FP_NAN | FP_NORMAL | FP_INFINITE | FP_ZERO | FP_SUBNORMAL)) - == FP_NAN; -} - -int __attribute__ ((alias ("__isnanl"))) isnanl (long double); diff --git a/winsup/mingw/mingwex/math/ldexpf.c b/winsup/mingw/mingwex/math/ldexpf.c deleted file mode 100644 index 5d01a0184..000000000 --- a/winsup/mingw/mingwex/math/ldexpf.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <math.h> -float ldexpf (float x, int expn) - {return (float) ldexp (x, expn);} diff --git a/winsup/mingw/mingwex/math/ldexpl.c b/winsup/mingw/mingwex/math/ldexpl.c deleted file mode 100644 index e4477bf6c..000000000 --- a/winsup/mingw/mingwex/math/ldexpl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <math.h> -#include <errno.h> - - -long double ldexpl(long double x, int expn) -{ - if (isfinite (x) && x != 0.0L) - { - x = scalbnl (x , expn); - if (!isfinite (x) || x == 0.0) errno = ERANGE; - } - return x; -} - diff --git a/winsup/mingw/mingwex/math/llrint.c b/winsup/mingw/mingwex/math/llrint.c deleted file mode 100644 index b6d9f3273..000000000 --- a/winsup/mingw/mingwex/math/llrint.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <math.h> - -long long llrint (double x) -{ - long long retval; - __asm__ __volatile__ \ - ("fistpll %0" : "=m" (retval) : "t" (x) : "st"); \ - return retval; -} - diff --git a/winsup/mingw/mingwex/math/llrintf.c b/winsup/mingw/mingwex/math/llrintf.c deleted file mode 100644 index 7fa67dbdf..000000000 --- a/winsup/mingw/mingwex/math/llrintf.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <math.h> - -long long llrintf (float x) -{ - long long retval; - __asm__ __volatile__ \ - ("fistpll %0" : "=m" (retval) : "t" (x) : "st"); \ - return retval; -} diff --git a/winsup/mingw/mingwex/math/llrintl.c b/winsup/mingw/mingwex/math/llrintl.c deleted file mode 100644 index 948d96265..000000000 --- a/winsup/mingw/mingwex/math/llrintl.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <math.h> - -long long llrintl (long double x) -{ - long long retval; - __asm__ __volatile__ \ - ("fistpll %0" : "=m" (retval) : "t" (x) : "st"); \ - return retval; -} - diff --git a/winsup/mingw/mingwex/math/llround.c b/winsup/mingw/mingwex/math/llround.c deleted file mode 100644 index 8b9fe9781..000000000 --- a/winsup/mingw/mingwex/math/llround.c +++ /dev/null @@ -1,24 +0,0 @@ -#include <fenv.h> -#include <math.h> - -long -lround (double x) { - long retval; - unsigned short saved_cw, _cw; - __asm__ ( - "fnstcw %0;" : "=m" (saved_cw) - ); /* save control word */ - _cw = ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - | (x > 0.0 ? FE_UPWARD : FE_DOWNWARD); /* round away from zero */ - __asm__ ( - "fldcw %0;" : : "m" (_cw) - ); /* load the rounding control */ - __asm__ __volatile__ ( - "fistpll %0" : "=m" (retval) : "t" (x) : "st" - ); - __asm__ ( - "fldcw %0;" : : "m" (saved_cw) - ); /* restore control word */ - return retval; -} - diff --git a/winsup/mingw/mingwex/math/llroundf.c b/winsup/mingw/mingwex/math/llroundf.c deleted file mode 100644 index b6c431f9d..000000000 --- a/winsup/mingw/mingwex/math/llroundf.c +++ /dev/null @@ -1,23 +0,0 @@ -#include <fenv.h> -#include <math.h> - -long long -llroundf (float x) { - long long retval; - unsigned short saved_cw, _cw; - __asm__ ( - "fnstcw %0;" : "=m" (saved_cw) - ); /* save control word */ - _cw = ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - | (x > 0.0 ? FE_UPWARD : FE_DOWNWARD); /* round away from zero */ - __asm__ ( - "fldcw %0;" : : "m" (_cw) - ); /* load the rounding control */ - __asm__ __volatile__ ( - "fistpll %0" : "=m" (retval) : "t" (x) : "st" - ); - __asm__ ( - "fldcw %0;" : : "m" (saved_cw) - ); /* restore control word */ - return retval; -} diff --git a/winsup/mingw/mingwex/math/llroundl.c b/winsup/mingw/mingwex/math/llroundl.c deleted file mode 100644 index ad334fb2c..000000000 --- a/winsup/mingw/mingwex/math/llroundl.c +++ /dev/null @@ -1,22 +0,0 @@ -#include <fenv.h> -#include <math.h> - -long long -llroundl (long double x) { - long long retval; - unsigned short saved_cw, _cw; - __asm__ ( - "fnstcw %0;" : "=m" (saved_cw) - ); /* save control word */ - _cw = ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - | (x > 0.0 ? FE_UPWARD : FE_DOWNWARD); /* round away from zero */ - __asm__ ( - "fldcw %0;" : : "m" (_cw) - ); /* load the rounding control */ - __asm__ __volatile__ ( - "fistpll %0" : "=m" (retval) : "t" (x) : "st"); - __asm__ ( - "fldcw %0;" : : "m" (saved_cw) - ); /* restore control word */ - return retval; -} diff --git a/winsup/mingw/mingwex/math/log10f.S b/winsup/mingw/mingwex/math/log10f.S deleted file mode 100644 index 90fc9af92..000000000 --- a/winsup/mingw/mingwex/math/log10f.S +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * Adapted for float type by Ulrich Drepper <drepper@cygnus.com>. - * - * Changed to use fyl2xp1 for values near 1, <drepper@cygnus.com>. - */ - - .file "log10f.S" - .text - .align 4 -one: .double 1.0 - /* It is not important that this constant is precise. It is only - a value which is known to be on the safe side for using the - fyl2xp1 instruction. */ -limit: .double 0.29 - - .text - .align 4 -.globl _log10f - .def _log10f; .scl 2; .type 32; .endef -_log10f: - fldlg2 // log10(2) - flds 4(%esp) // x : log10(2) - fxam - fnstsw - fld %st // x : x : log10(2) - sahf - jc 3f // in case x is NaN or ±Inf -4: fsubl one // x-1 : x : log10(2) - fld %st // x-1 : x-1 : x : log10(2) - fabs // |x-1| : x-1 : x : log10(2) - fcompl limit // x-1 : x : log10(2) - fnstsw // x-1 : x : log10(2) - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : log10(2) - fyl2xp1 // log10(x) - ret - -2: fstp %st(0) // x : log10(2) - fyl2x // log10(x) - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/log10l.S b/winsup/mingw/mingwex/math/log10l.S deleted file mode 100644 index 8c046a09d..000000000 --- a/winsup/mingw/mingwex/math/log10l.S +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - * - * Changed to use fyl2xp1 for values near 1, <drepper@cygnus.com>. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "log10l.S" - .text - .align 4 -one: .double 1.0 - /* It is not important that this constant is precise. It is only - a value which is known to be on the safe side for using the - fyl2xp1 instruction. */ -limit: .double 0.29 - - .text - .align 4 -.globl _log10l - .def _log10l; .scl 2; .type 32; .endef -_log10l: - fldlg2 // log10(2) - fldt 4(%esp) // x : log10(2) - fxam - fnstsw - fld %st // x : x : log10(2) - sahf - jc 3f // in case x is NaN or ±Inf -4: fsubl one // x-1 : x : log10(2) - fld %st // x-1 : x-1 : x : log10(2) - fabs // |x-1| : x-1 : x : log10(2) - fcompl limit // x-1 : x : log10(2) - fnstsw // x-1 : x : log10(2) - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : log10(2) - fyl2xp1 // log10(x) - ret - -2: fstp %st(0) // x : log10(2) - fyl2x // log10(x) - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/log1p.S b/winsup/mingw/mingwex/math/log1p.S deleted file mode 100644 index a38816cb3..000000000 --- a/winsup/mingw/mingwex/math/log1p.S +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "log1p.S" - .text - .align 4 - /* The fyl2xp1 can only be used for values in - -1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2 - 0.29 is a safe value. - */ -limit: .double 0.29 -one: .double 1.0 -/* - * Use the fyl2xp1 function when the argument is in the range -0.29 to 0.29, - * otherwise fyl2x with the needed extra computation. - */ -.globl _log1p; - .def _log1p; .scl 2; .type 32; .endef -_log1p: - fldln2 - fldl 4(%esp) - fxam - fnstsw - fld %st - sahf - jc 3f // in case x is NaN or ±Inf - -4: fabs - fcompl limit - fnstsw - sahf - jc 2f - faddl one - fyl2x - ret - -2: fyl2xp1 - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/log1pf.S b/winsup/mingw/mingwex/math/log1pf.S deleted file mode 100644 index 1d9949f2a..000000000 --- a/winsup/mingw/mingwex/math/log1pf.S +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "log1pf.S" - .text - .align 4 - /* The fyl2xp1 can only be used for values in - -1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2 - 0.29 is a safe value. - */ -limit: .float 0.29 -one: .float 1.0 -/* - * Use the fyl2xp1 function when the argument is in the range -0.29 to 0.29, - * otherwise fyl2x with the needed extra computation. - */ -.globl _log1pf; - .def _log1pf; .scl 2; .type 32; .endef -_log1pf: - fldln2 - flds 4(%esp) - fxam - fnstsw - fld %st - sahf - jc 3f // in case x is NaN or ±Inf - -4: fabs - fcomps limit - fnstsw - sahf - jc 2f - fadds one - fyl2x - ret - -2: fyl2xp1 - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/log1pl.S b/winsup/mingw/mingwex/math/log1pl.S deleted file mode 100644 index 5ce4fbaaa..000000000 --- a/winsup/mingw/mingwex/math/log1pl.S +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. -* Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "log1pl.S" - .text - .align 4 - /* The fyl2xp1 can only be used for values in - -1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2 - 0.29 is a safe value. - */ -limit: .tfloat 0.29 - /* Please note: we use a double value here. Since 1.0 has - an exact representation this does not effect the accuracy - but it helps to optimize the code. */ -one: .double 1.0 - -/* - * Use the fyl2xp1 function when the argument is in the range -0.29 to 0.29, - * otherwise fyl2x with the needed extra computation. - */ -.globl _log1pl; - .def _log1pl; .scl 2; .type 32; .endef -_log1pl: - fldln2 - fldt 4(%esp) - fxam - fnstsw - fld %st - sahf - jc 3f // in case x is NaN or ±Inf -4: - fabs - fldt limit - fcompp - fnstsw - sahf - jnc 2f - faddl one - fyl2x - ret - -2: fyl2xp1 - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/log2.S b/winsup/mingw/mingwex/math/log2.S deleted file mode 100644 index 08f008310..000000000 --- a/winsup/mingw/mingwex/math/log2.S +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Adapted for use as log2 by Ulrich Drepper <drepper@cygnus.com>. - * Public domain. - * - * Changed to use fyl2xp1 for values near 1, <drepper@cygnus.com>. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "log2.S" - .text - .align 4 -one: .double 1.0 - /* It is not important that this constant is precise. It is only - a value which is known to be on the safe side for using the - fyl2xp1 instruction. */ -limit: .double 0.29 - - .text - .align 4 -.globl _log2 - .def _log2; .scl 2; .type 32; .endef -_log2: - fldl one - fldl 4(%esp) // x : 1 - fxam - fnstsw - fld %st // x : x : 1 - sahf - jc 3f // in case x is NaN or ±Inf -4: fsub %st(2), %st // x-1 : x : 1 - fld %st // x-1 : x-1 : x : 1 - fabs // |x-1| : x-1 : x : 1 - fcompl limit // x-1 : x : 1 - fnstsw // x-1 : x : 1 - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : 1 - fyl2xp1 // log(x) - ret - -2: fstp %st(0) // x : 1 - fyl2x // log(x) - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/log2f.S b/winsup/mingw/mingwex/math/log2f.S deleted file mode 100644 index 211abba3d..000000000 --- a/winsup/mingw/mingwex/math/log2f.S +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Adapted for use as log2 by Ulrich Drepper <drepper@cygnus.com>. - * Public domain. - * - * Changed to use fyl2xp1 for values near 1, <drepper@cygnus.com>. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "log2f.S" - .text - .align 4 -one: .double 1.0 - /* It is not important that this constant is precise. It is only - a value which is known to be on the safe side for using the - fyl2xp1 instruction. */ -limit: .double 0.29 - - .text - .align 4 -.globl _log2f - .def _log2f; .scl 2; .type 32; .endef -_log2f: - fldl one - flds 4(%esp) // x : 1 - fxam - fnstsw - fld %st // x : x : 1 - sahf - jc 3f // in case x is NaN or ±Inf -4: fsub %st(2), %st // x-1 : x : 1 - fld %st // x-1 : x-1 : x : 1 - fabs // |x-1| : x-1 : x : 1 - fcompl limit // x-1 : x : 1 - fnstsw // x-1 : x : 1 - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : 1 - fyl2xp1 // log(x) - ret - -2: fstp %st(0) // x : 1 - fyl2x // log(x) - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/log2l.S b/winsup/mingw/mingwex/math/log2l.S deleted file mode 100644 index 52503fc52..000000000 --- a/winsup/mingw/mingwex/math/log2l.S +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Adapted for use as log2 by Ulrich Drepper <drepper@cygnus.com>. - * Public domain. - * - * Changed to use fyl2xp1 for values near 1, <drepper@cygnus.com>. - */ - - .file "log2l.S" - .text - .align 4 -one: .double 1.0 - /* It is not important that this constant is precise. It is only - a value which is known to be on the safe side for using the - fyl2xp1 instruction. */ -limit: .double 0.29 - - .text - .align 4 -.globl _log2l - .def _log2l; .scl 2; .type 32; .endef -_log2l: - fldl one - fldt 4(%esp) // x : 1 - fxam - fnstsw - fld %st // x : x : 1 - sahf - jc 3f // in case x is NaN or ±Inf -4: fsub %st(2), %st // x-1 : x : 1 - fld %st // x-1 : x-1 : x : 1 - fabs // |x-1| : x-1 : x : 1 - fcompl limit // x-1 : x : 1 - fnstsw // x-1 : x : 1 - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : 1 - fyl2xp1 // log(x) - ret - -2: fstp %st(0) // x : 1 - fyl2x // log(x) - ret - -3: jp 4b // in case x is ±Inf - fstp %st(1) - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/logb.c b/winsup/mingw/mingwex/math/logb.c deleted file mode 100644 index cdff13647..000000000 --- a/winsup/mingw/mingwex/math/logb.c +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Changes for long double by Ulrich Drepper <drepper@cygnus.com> - * Public domain. - */ - -#include <math.h> - -double -logb (double x) -{ - double res; - asm ("fxtract\n\t" - "fstp %%st" : "=t" (res) : "0" (x)); - return res; -} diff --git a/winsup/mingw/mingwex/math/logbf.c b/winsup/mingw/mingwex/math/logbf.c deleted file mode 100644 index b5f57d2e1..000000000 --- a/winsup/mingw/mingwex/math/logbf.c +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Changes for long double by Ulrich Drepper <drepper@cygnus.com> - * Public domain. - */ - -#include <math.h> - -float -logbf (float x) -{ - float res; - asm ("fxtract\n\t" - "fstp %%st" : "=t" (res) : "0" (x)); - return res; -} diff --git a/winsup/mingw/mingwex/math/logbl.c b/winsup/mingw/mingwex/math/logbl.c deleted file mode 100644 index f1448eb99..000000000 --- a/winsup/mingw/mingwex/math/logbl.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Changes for long double by Ulrich Drepper <drepper@cygnus.com> - * Public domain. - */ - -#include <math.h> - -long double -logbl (long double x) -{ - long double res; - - asm ("fxtract\n\t" - "fstp %%st" : "=t" (res) : "0" (x)); - return res; -} diff --git a/winsup/mingw/mingwex/math/logf.S b/winsup/mingw/mingwex/math/logf.S deleted file mode 100644 index 32119ecde..000000000 --- a/winsup/mingw/mingwex/math/logf.S +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * Adapted for float by Ulrich Drepper <drepper@cygnus.com>. - * - * Changed to use fyl2xp1 for values near 1, <drepper@cygnus.com>. - */ - - .file "logf.S" - .text - .align 4 -one: .double 1.0 - /* It is not important that this constant is precise. It is only - a value which is known to be on the safe side for using the - fyl2xp1 instruction. */ -limit: .double 0.29 - - .text - .align 4 -.globl _logf - .def _logf; .scl 2; .type 32; .endef -_logf: - fldln2 // log(2) - flds 4(%esp) // x : log(2) - fld %st // x : x : log(2) - fsubl one // x-1 : x : log(2) - fld %st // x-1 : x-1 : x : log(2) - fabs // |x-1| : x-1 : x : log(2) - fcompl limit // x-1 : x : log(2) - fnstsw // x-1 : x : log(2) - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : log(2) - fyl2xp1 // log(x) - ret - -2: fstp %st(0) // x : log(2) - fyl2x // log(x) - ret diff --git a/winsup/mingw/mingwex/math/logl.S b/winsup/mingw/mingwex/math/logl.S deleted file mode 100644 index 8dc144915..000000000 --- a/winsup/mingw/mingwex/math/logl.S +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - .file "logl.S" - .text - .align 4 -one: .double 1.0 - /* It is not important that this constant is precise. It is only - a value which is known to be on the safe side for using the - fyl2xp1 instruction. */ -limit: .double 0.29 - - .text - .align 4 -.globl _logl - .def _logl; .scl 2; .type 32; .endef -_logl: - fldln2 // log(2) - fldt 4(%esp) // x : log(2) - fld %st // x : x : log(2) - fsubl one // x-1 : x : log(2) - fld %st // x-1 : x-1 : x : log(2) - fabs // |x-1| : x-1 : x : log(2) - fcompl limit // x-1 : x : log(2) - fnstsw // x-1 : x : log(2) - andb $0x45, %ah - jz 2f - fstp %st(1) // x-1 : log(2) - fyl2xp1 // log(x) - ret - -2: fstp %st(0) // x : log(2) - fyl2x // log(x) - ret diff --git a/winsup/mingw/mingwex/math/lrint.c b/winsup/mingw/mingwex/math/lrint.c deleted file mode 100644 index 7dfa233a8..000000000 --- a/winsup/mingw/mingwex/math/lrint.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <math.h> - -long lrint (double x) -{ - long retval; - __asm__ __volatile__ \ - ("fistpl %0" : "=m" (retval) : "t" (x) : "st"); \ - return retval; -} diff --git a/winsup/mingw/mingwex/math/lrintf.c b/winsup/mingw/mingwex/math/lrintf.c deleted file mode 100644 index 24b7a7d07..000000000 --- a/winsup/mingw/mingwex/math/lrintf.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <math.h> - -long lrintf (float x) -{ - long retval; - __asm__ __volatile__ \ - ("fistpl %0" : "=m" (retval) : "t" (x) : "st"); \ - return retval; -} diff --git a/winsup/mingw/mingwex/math/lrintl.c b/winsup/mingw/mingwex/math/lrintl.c deleted file mode 100644 index f55599332..000000000 --- a/winsup/mingw/mingwex/math/lrintl.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <math.h> - -long lrintl (long double x) -{ - long retval; - __asm__ __volatile__ \ - ("fistpl %0" : "=m" (retval) : "t" (x) : "st"); \ - return retval; -} - diff --git a/winsup/mingw/mingwex/math/lround.c b/winsup/mingw/mingwex/math/lround.c deleted file mode 100644 index 4b0b0d047..000000000 --- a/winsup/mingw/mingwex/math/lround.c +++ /dev/null @@ -1,24 +0,0 @@ -#include <fenv.h> -#include <math.h> - -long -lround (double x) { - long retval; - unsigned short saved_cw, _cw; - __asm__ ( - "fnstcw %0;" : "=m" (saved_cw) - ); /* save control word */ - _cw = ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - | (x > 0.0 ? FE_UPWARD : FE_DOWNWARD); /* round away from zero */ - __asm__ ( - "fldcw %0;" : : "m" (_cw) - ); /* load the rounding control */ - __asm__ __volatile__ ( - "fistpl %0" : "=m" (retval) : "t" (x) : "st" - ); - __asm__ ( - "fldcw %0;" : : "m" (saved_cw) - ); /* restore control word */ - return retval; -} - diff --git a/winsup/mingw/mingwex/math/lroundf.c b/winsup/mingw/mingwex/math/lroundf.c deleted file mode 100644 index 40051bfcb..000000000 --- a/winsup/mingw/mingwex/math/lroundf.c +++ /dev/null @@ -1,23 +0,0 @@ -#include <fenv.h> -#include <math.h> - -long -lroundf (float x) { - long retval; - unsigned short saved_cw, _cw; - __asm__ ( - "fnstcw %0;" : "=m" (saved_cw) - ); /* save control word */ - _cw = ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - | (x > 0.0 ? FE_UPWARD : FE_DOWNWARD); /* round away from zero */ - __asm__ ( - "fldcw %0;" : : "m" (_cw) - ); /* load the rounding control */ - __asm__ __volatile__ ( - "fistpl %0" : "=m" (retval) : "t" (x) : "st" - ); - __asm__ ( - "fldcw %0;" : : "m" (saved_cw) - ); /* restore control word */ - return retval; -} diff --git a/winsup/mingw/mingwex/math/lroundl.c b/winsup/mingw/mingwex/math/lroundl.c deleted file mode 100644 index 6e69c2fdd..000000000 --- a/winsup/mingw/mingwex/math/lroundl.c +++ /dev/null @@ -1,22 +0,0 @@ -#include <fenv.h> -#include <math.h> - -long -lroundl (long double x) { - long retval; - unsigned short saved_cw, _cw; - __asm__ ( - "fnstcw %0;" : "=m" (saved_cw) - ); /* save control word */ - _cw = ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - | (x > 0.0 ? FE_UPWARD : FE_DOWNWARD); /* round away from zero */ - __asm__ ( - "fldcw %0;" : : "m" (_cw) - ); /* load the rounding control */ - __asm__ __volatile__ ( - "fistpl %0" : "=m" (retval) : "t" (x) : "st"); - __asm__ ( - "fldcw %0;" : : "m" (saved_cw) - ); /* restore control word */ - return retval; -} diff --git a/winsup/mingw/mingwex/math/modff.c b/winsup/mingw/mingwex/math/modff.c deleted file mode 100644 index 9e34c7c95..000000000 --- a/winsup/mingw/mingwex/math/modff.c +++ /dev/null @@ -1,21 +0,0 @@ -#include <fenv.h> -#include <math.h> -#include <errno.h> -#define FE_ROUNDING_MASK \ - (FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - -float -modff (float value, float* iptr) -{ - float int_part; - unsigned short saved_cw; - /* truncate */ - asm ("fnstcw %0;" : "=m" (saved_cw)); /* save control word */ - asm ("fldcw %0;" : : "m" ((saved_cw & ~FE_ROUNDING_MASK) - | FE_TOWARDZERO)); - asm ("frndint;" : "=t" (int_part) : "0" (value)); /* round */ - asm ("fldcw %0;" : : "m" (saved_cw)); /* restore saved cw */ - if (iptr) - *iptr = int_part; - return (isinf (value) ? 0.0F : value - int_part); -} diff --git a/winsup/mingw/mingwex/math/modfl.c b/winsup/mingw/mingwex/math/modfl.c deleted file mode 100644 index 5663956f0..000000000 --- a/winsup/mingw/mingwex/math/modfl.c +++ /dev/null @@ -1,21 +0,0 @@ -#include <fenv.h> -#include <math.h> -#include <errno.h> -#define FE_ROUNDING_MASK \ - (FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - -long double -modfl (long double value, long double* iptr) -{ - long double int_part; - unsigned short saved_cw; - /* truncate */ - asm ("fnstcw %0;" : "=m" (saved_cw)); /* save control word */ - asm ("fldcw %0;" : : "m" ((saved_cw & ~FE_ROUNDING_MASK) - | FE_TOWARDZERO)); - asm ("frndint;" : "=t" (int_part) : "0" (value)); /* round */ - asm ("fldcw %0;" : : "m" (saved_cw)); /* restore saved cw */ - if (iptr) - *iptr = int_part; - return (isinf (value) ? 0.0L : value - int_part); -} diff --git a/winsup/mingw/mingwex/math/nearbyint.S b/winsup/mingw/mingwex/math/nearbyint.S deleted file mode 100644 index 9730aeebf..000000000 --- a/winsup/mingw/mingwex/math/nearbyint.S +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for use as nearbyint by Ulrich Drepper <drepper@cygnus.com>. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "nearbyint.S" - .text - .align 4 -.globl _nearbyint - .def _nearbyint; .scl 2; .type 32; .endef -_nearbyint: - fldl 4(%esp) - pushl %eax - pushl %ecx - fnstcw (%esp) - movl (%esp), %eax - orl $0x20, %eax - movl %eax, 4(%esp) - fldcw 4(%esp) - frndint - fclex - fldcw (%esp) - popl %ecx - popl %eax - ret diff --git a/winsup/mingw/mingwex/math/nearbyintf.S b/winsup/mingw/mingwex/math/nearbyintf.S deleted file mode 100644 index 1c5734084..000000000 --- a/winsup/mingw/mingwex/math/nearbyintf.S +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * Adapted for use as nearbyint by Ulrich Drepper <drepper@cygnus.com>. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "nearbyintf.S" - .text - .align 4 -.globl _nearbyintf - .def _nearbyintf; .scl 2; .type 32; .endef -_nearbyintf: - flds 4(%esp) - pushl %eax - pushl %ecx - fnstcw (%esp) - movl (%esp), %eax - orl $0x20, %eax - movl %eax, 4(%esp) - fldcw 4(%esp) - frndint - fclex - fldcw (%esp) - popl %ecx - popl %eax - ret diff --git a/winsup/mingw/mingwex/math/nearbyintl.S b/winsup/mingw/mingwex/math/nearbyintl.S deleted file mode 100644 index 7dbc2a8b7..000000000 --- a/winsup/mingw/mingwex/math/nearbyintl.S +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adaptedfor use as nearbyint by Ulrich Drepper <drepper@cygnus.com>. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "nearbyintl.S" - .text - .align 4 -.globl _nearbyintl - .def _nearbyintl; .scl 2; .type 32; .endef -_nearbyintl: - fldt 4(%esp) - pushl %eax - pushl %ecx - fnstcw (%esp) - movl (%esp), %eax - orl $0x20, %eax - movl %eax, 4(%esp) - fldcw 4(%esp) - frndint - fclex - fldcw (%esp) - popl %ecx - popl %eax - ret diff --git a/winsup/mingw/mingwex/math/nextafterf.c b/winsup/mingw/mingwex/math/nextafterf.c deleted file mode 100644 index ac1fbee26..000000000 --- a/winsup/mingw/mingwex/math/nextafterf.c +++ /dev/null @@ -1,29 +0,0 @@ -#include <math.h> - -float -nextafterf (float x, float y) -{ - union - { - float f; - unsigned int i; - } u; - if (isnan (y) || isnan (x)) - return x + y; - if (x == y ) - return x; - u.f = x; - if (u.i == 0u) - { - if (y > 0.0F) - u.i = 1; - else - u.i = 0x80000001; - return u.f; - } - if (((x > 0.0F) ^ (y > x)) == 0) - u.i++; - else - u.i--; - return u.f; -} diff --git a/winsup/mingw/mingwex/math/powf.c b/winsup/mingw/mingwex/math/powf.c deleted file mode 100644 index 1af4d2d8f..000000000 --- a/winsup/mingw/mingwex/math/powf.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <math.h> -float powf (float x, float y) - {return (float) pow (x, y);} diff --git a/winsup/mingw/mingwex/math/powil.c b/winsup/mingw/mingwex/math/powil.c deleted file mode 100644 index e900dd881..000000000 --- a/winsup/mingw/mingwex/math/powil.c +++ /dev/null @@ -1,179 +0,0 @@ -/* powil.c - * - * Real raised to integer power, long double precision - * - * - * - * SYNOPSIS: - * - * long double x, y, powil(); - * int n; - * - * y = powil( x, n ); - * - * - * - * DESCRIPTION: - * - * Returns argument x raised to the nth power. - * The routine efficiently decomposes n as a sum of powers of - * two. The desired power is a product of two-to-the-kth - * powers of x. Thus to compute the 32767 power of x requires - * 28 multiplications instead of 32767 multiplications. - * - * - * - * ACCURACY: - * - * - * Relative error: - * arithmetic x domain n domain # trials peak rms - * IEEE .001,1000 -1022,1023 50000 4.3e-17 7.8e-18 - * IEEE 1,2 -1022,1023 20000 3.9e-17 7.6e-18 - * IEEE .99,1.01 0,8700 10000 3.6e-16 7.2e-17 - * - * Returns INFINITY on overflow, zero on underflow. - * - */ - -/* powil.c */ - -/* -Cephes Math Library Release 2.2: December, 1990 -Copyright 1984, 1990 by Stephen L. Moshier -Direct inquiries to 30 Frost Street, Cambridge, MA 02140 -*/ - -/* -Modified for mingw -2002-07-22 Danny Smith <dannysmith@users.sourceforge.net> -*/ - -#ifdef __MINGW32__ -#include "cephes_mconf.h" -#else -#include "mconf.h" -extern long double MAXNUML, MAXLOGL, MINLOGL; -extern long double LOGE2L; -#ifdef ANSIPROT -extern long double frexpl ( long double, int * ); -#else -long double frexpl(); -#endif -#endif /* __MINGW32__ */ - -#ifndef _SET_ERRNO -#define _SET_ERRNO(x) -#endif - -long double powil( x, nn ) -long double x; -int nn; -{ -long double w, y; -long double s; -int n, e, sign, asign, lx; - -if( x == 0.0L ) - { - if( nn == 0 ) - return( 1.0L ); - else if( nn < 0 ) - return( INFINITYL ); - else - return( 0.0L ); - } - -if( nn == 0 ) - return( 1.0L ); - - -if( x < 0.0L ) - { - asign = -1; - x = -x; - } -else - asign = 0; - - -if( nn < 0 ) - { - sign = -1; - n = -nn; - } -else - { - sign = 1; - n = nn; - } - -/* Overflow detection */ - -/* Calculate approximate logarithm of answer */ -s = x; -s = frexpl( s, &lx ); -e = (lx - 1)*n; -if( (e == 0) || (e > 64) || (e < -64) ) - { - s = (s - 7.0710678118654752e-1L) / (s + 7.0710678118654752e-1L); - s = (2.9142135623730950L * s - 0.5L + lx) * nn * LOGE2L; - } -else - { - s = LOGE2L * e; - } - -if( s > MAXLOGL ) - { - mtherr( "powil", OVERFLOW ); - _SET_ERRNO(ERANGE); - y = INFINITYL; - goto done; - } - -if( s < MINLOGL ) - { - mtherr( "powil", UNDERFLOW ); - _SET_ERRNO(ERANGE); - return(0.0L); - } -/* Handle tiny denormal answer, but with less accuracy - * since roundoff error in 1.0/x will be amplified. - * The precise demarcation should be the gradual underflow threshold. - */ -if( s < (-MAXLOGL+2.0L) ) - { - x = 1.0L/x; - sign = -sign; - } - -/* First bit of the power */ -if( n & 1 ) - y = x; - -else - { - y = 1.0L; - asign = 0; - } - -w = x; -n >>= 1; -while( n ) - { - w = w * w; /* arg to the 2-to-the-kth power */ - if( n & 1 ) /* if that bit is set, then include in product */ - y *= w; - n >>= 1; - } - - -done: - -if( asign ) - y = -y; /* odd power of negative number */ -if( sign < 0 ) - y = 1.0L/y; -return(y); -} diff --git a/winsup/mingw/mingwex/math/powl.c b/winsup/mingw/mingwex/math/powl.c deleted file mode 100644 index a94ede965..000000000 --- a/winsup/mingw/mingwex/math/powl.c +++ /dev/null @@ -1,803 +0,0 @@ -/* powl.c - * - * Power function, long double precision - * - * - * - * SYNOPSIS: - * - * long double x, y, z, powl(); - * - * z = powl( x, y ); - * - * - * - * DESCRIPTION: - * - * Computes x raised to the yth power. Analytically, - * - * x**y = exp( y log(x) ). - * - * Following Cody and Waite, this program uses a lookup table - * of 2**-i/32 and pseudo extended precision arithmetic to - * obtain several extra bits of accuracy in both the logarithm - * and the exponential. - * - * - * - * ACCURACY: - * - * The relative error of pow(x,y) can be estimated - * by y dl ln(2), where dl is the absolute error of - * the internally computed base 2 logarithm. At the ends - * of the approximation interval the logarithm equal 1/32 - * and its relative error is about 1 lsb = 1.1e-19. Hence - * the predicted relative error in the result is 2.3e-21 y . - * - * Relative error: - * arithmetic domain # trials peak rms - * - * IEEE +-1000 40000 2.8e-18 3.7e-19 - * .001 < x < 1000, with log(x) uniformly distributed. - * -1000 < y < 1000, y uniformly distributed. - * - * IEEE 0,8700 60000 6.5e-18 1.0e-18 - * 0.99 < x < 1.01, 0 < y < 8700, uniformly distributed. - * - * - * ERROR MESSAGES: - * - * message condition value returned - * pow overflow x**y > MAXNUM INFINITY - * pow underflow x**y < 1/MAXNUM 0.0 - * pow domain x<0 and y noninteger 0.0 - * - */ - -/* -Cephes Math Library Release 2.7: May, 1998 -Copyright 1984, 1991, 1998 by Stephen L. Moshier -*/ - -/* -Modified for mingw -2002-07-22 Danny Smith <dannysmith@users.sourceforge.net> -*/ - -#ifdef __MINGW32__ -#include "cephes_mconf.h" -#else -#include "mconf.h" - -static char fname[] = {"powl"}; -#endif - -#ifndef _SET_ERRNO -#define _SET_ERRNO(x) -#endif - - -/* Table size */ -#define NXT 32 -/* log2(Table size) */ -#define LNXT 5 - -#ifdef UNK -/* log(1+x) = x - .5x^2 + x^3 * P(z)/Q(z) - * on the domain 2^(-1/32) - 1 <= x <= 2^(1/32) - 1 - */ -static long double P[] = { - 8.3319510773868690346226E-4L, - 4.9000050881978028599627E-1L, - 1.7500123722550302671919E0L, - 1.4000100839971580279335E0L, -}; -static long double Q[] = { -/* 1.0000000000000000000000E0L,*/ - 5.2500282295834889175431E0L, - 8.4000598057587009834666E0L, - 4.2000302519914740834728E0L, -}; -/* A[i] = 2^(-i/32), rounded to IEEE long double precision. - * If i is even, A[i] + B[i/2] gives additional accuracy. - */ -static long double A[33] = { - 1.0000000000000000000000E0L, - 9.7857206208770013448287E-1L, - 9.5760328069857364691013E-1L, - 9.3708381705514995065011E-1L, - 9.1700404320467123175367E-1L, - 8.9735453750155359320742E-1L, - 8.7812608018664974155474E-1L, - 8.5930964906123895780165E-1L, - 8.4089641525371454301892E-1L, - 8.2287773907698242225554E-1L, - 8.0524516597462715409607E-1L, - 7.8799042255394324325455E-1L, - 7.7110541270397041179298E-1L, - 7.5458221379671136985669E-1L, - 7.3841307296974965571198E-1L, - 7.2259040348852331001267E-1L, - 7.0710678118654752438189E-1L, - 6.9195494098191597746178E-1L, - 6.7712777346844636413344E-1L, - 6.6261832157987064729696E-1L, - 6.4841977732550483296079E-1L, - 6.3452547859586661129850E-1L, - 6.2092890603674202431705E-1L, - 6.0762367999023443907803E-1L, - 5.9460355750136053334378E-1L, - 5.8186242938878875689693E-1L, - 5.6939431737834582684856E-1L, - 5.5719337129794626814472E-1L, - 5.4525386633262882960438E-1L, - 5.3357020033841180906486E-1L, - 5.2213689121370692017331E-1L, - 5.1094857432705833910408E-1L, - 5.0000000000000000000000E-1L, -}; -static long double B[17] = { - 0.0000000000000000000000E0L, - 2.6176170809902549338711E-20L, --1.0126791927256478897086E-20L, - 1.3438228172316276937655E-21L, - 1.2207982955417546912101E-20L, --6.3084814358060867200133E-21L, - 1.3164426894366316434230E-20L, --1.8527916071632873716786E-20L, - 1.8950325588932570796551E-20L, - 1.5564775779538780478155E-20L, - 6.0859793637556860974380E-21L, --2.0208749253662532228949E-20L, - 1.4966292219224761844552E-20L, - 3.3540909728056476875639E-21L, --8.6987564101742849540743E-22L, --1.2327176863327626135542E-20L, - 0.0000000000000000000000E0L, -}; - -/* 2^x = 1 + x P(x), - * on the interval -1/32 <= x <= 0 - */ -static long double R[] = { - 1.5089970579127659901157E-5L, - 1.5402715328927013076125E-4L, - 1.3333556028915671091390E-3L, - 9.6181291046036762031786E-3L, - 5.5504108664798463044015E-2L, - 2.4022650695910062854352E-1L, - 6.9314718055994530931447E-1L, -}; - -#define douba(k) A[k] -#define doubb(k) B[k] -#define MEXP (NXT*16384.0L) -/* The following if denormal numbers are supported, else -MEXP: */ -#ifdef DENORMAL -#define MNEXP (-NXT*(16384.0L+64.0L)) -#else -#define MNEXP (-NXT*16384.0L) -#endif -/* log2(e) - 1 */ -#define LOG2EA 0.44269504088896340735992L -#endif - - -#ifdef IBMPC -static const unsigned short P[] = { -0xb804,0xa8b7,0xc6f4,0xda6a,0x3ff4, XPD -0x7de9,0xcf02,0x58c0,0xfae1,0x3ffd, XPD -0x405a,0x3722,0x67c9,0xe000,0x3fff, XPD -0xcd99,0x6b43,0x87ca,0xb333,0x3fff, XPD -}; -static const unsigned short Q[] = { -/* 0x0000,0x0000,0x0000,0x8000,0x3fff, */ -0x6307,0xa469,0x3b33,0xa800,0x4001, XPD -0xfec2,0x62d7,0xa51c,0x8666,0x4002, XPD -0xda32,0xd072,0xa5d7,0x8666,0x4001, XPD -}; -static const unsigned short A[] = { -0x0000,0x0000,0x0000,0x8000,0x3fff, XPD -0x033a,0x722a,0xb2db,0xfa83,0x3ffe, XPD -0xcc2c,0x2486,0x7d15,0xf525,0x3ffe, XPD -0xf5cb,0xdcda,0xb99b,0xefe4,0x3ffe, XPD -0x392f,0xdd24,0xc6e7,0xeac0,0x3ffe, XPD -0x48a8,0x7c83,0x06e7,0xe5b9,0x3ffe, XPD -0xe111,0x2a94,0xdeec,0xe0cc,0x3ffe, XPD -0x3755,0xdaf2,0xb797,0xdbfb,0x3ffe, XPD -0x6af4,0xd69d,0xfcca,0xd744,0x3ffe, XPD -0xe45a,0xf12a,0x1d91,0xd2a8,0x3ffe, XPD -0x80e4,0x1f84,0x8c15,0xce24,0x3ffe, XPD -0x27a3,0x6e2f,0xbd86,0xc9b9,0x3ffe, XPD -0xdadd,0x5506,0x2a11,0xc567,0x3ffe, XPD -0x9456,0x6670,0x4cca,0xc12c,0x3ffe, XPD -0x36bf,0x580c,0xa39f,0xbd08,0x3ffe, XPD -0x9ee9,0x62fb,0xaf47,0xb8fb,0x3ffe, XPD -0x6484,0xf9de,0xf333,0xb504,0x3ffe, XPD -0x2590,0xd2ac,0xf581,0xb123,0x3ffe, XPD -0x4ac6,0x42a1,0x3eea,0xad58,0x3ffe, XPD -0x0ef8,0xea7c,0x5ab4,0xa9a1,0x3ffe, XPD -0x38ea,0xb151,0xd6a9,0xa5fe,0x3ffe, XPD -0x6819,0x0c49,0x4303,0xa270,0x3ffe, XPD -0x11ae,0x91a1,0x3260,0x9ef5,0x3ffe, XPD -0x5539,0xd54e,0x39b9,0x9b8d,0x3ffe, XPD -0xa96f,0x8db8,0xf051,0x9837,0x3ffe, XPD -0x0961,0xfef7,0xefa8,0x94f4,0x3ffe, XPD -0xc336,0xab11,0xd373,0x91c3,0x3ffe, XPD -0x53c0,0x45cd,0x398b,0x8ea4,0x3ffe, XPD -0xd6e7,0xea8b,0xc1e3,0x8b95,0x3ffe, XPD -0x8527,0x92da,0x0e80,0x8898,0x3ffe, XPD -0x7b15,0xcc48,0xc367,0x85aa,0x3ffe, XPD -0xa1d7,0xac2b,0x8698,0x82cd,0x3ffe, XPD -0x0000,0x0000,0x0000,0x8000,0x3ffe, XPD -}; -static const unsigned short B[] = { -0x0000,0x0000,0x0000,0x0000,0x0000, XPD -0x1f87,0xdb30,0x18f5,0xf73a,0x3fbd, XPD -0xac15,0x3e46,0x2932,0xbf4a,0xbfbc, XPD -0x7944,0xba66,0xa091,0xcb12,0x3fb9, XPD -0xff78,0x40b4,0x2ee6,0xe69a,0x3fbc, XPD -0xc895,0x5069,0xe383,0xee53,0xbfbb, XPD -0x7cde,0x9376,0x4325,0xf8ab,0x3fbc, XPD -0xa10c,0x25e0,0xc093,0xaefd,0xbfbd, XPD -0x7d3e,0xea95,0x1366,0xb2fb,0x3fbd, XPD -0x5d89,0xeb34,0x5191,0x9301,0x3fbd, XPD -0x80d9,0xb883,0xfb10,0xe5eb,0x3fbb, XPD -0x045d,0x288c,0xc1ec,0xbedd,0xbfbd, XPD -0xeded,0x5c85,0x4630,0x8d5a,0x3fbd, XPD -0x9d82,0xe5ac,0x8e0a,0xfd6d,0x3fba, XPD -0x6dfd,0xeb58,0xaf14,0x8373,0xbfb9, XPD -0xf938,0x7aac,0x91cf,0xe8da,0xbfbc, XPD -0x0000,0x0000,0x0000,0x0000,0x0000, XPD -}; -static const unsigned short R[] = { -0xa69b,0x530e,0xee1d,0xfd2a,0x3fee, XPD -0xc746,0x8e7e,0x5960,0xa182,0x3ff2, XPD -0x63b6,0xadda,0xfd6a,0xaec3,0x3ff5, XPD -0xc104,0xfd99,0x5b7c,0x9d95,0x3ff8, XPD -0xe05e,0x249d,0x46b8,0xe358,0x3ffa, XPD -0x5d1d,0x162c,0xeffc,0xf5fd,0x3ffc, XPD -0x79aa,0xd1cf,0x17f7,0xb172,0x3ffe, XPD -}; - -/* 10 byte sizes versus 12 byte */ -#define douba(k) (*(long double *)(&A[(sizeof( long double )/2)*(k)])) -#define doubb(k) (*(long double *)(&B[(sizeof( long double )/2)*(k)])) -#define MEXP (NXT*16384.0L) -#ifdef DENORMAL -#define MNEXP (-NXT*(16384.0L+64.0L)) -#else -#define MNEXP (-NXT*16384.0L) -#endif -static const unsigned short L[] = {0xc2ef,0x705f,0xeca5,0xe2a8,0x3ffd, XPD}; -#define LOG2EA (*(long double *)(&L[0])) -#endif - -#ifdef MIEEE -static long P[] = { -0x3ff40000,0xda6ac6f4,0xa8b7b804, -0x3ffd0000,0xfae158c0,0xcf027de9, -0x3fff0000,0xe00067c9,0x3722405a, -0x3fff0000,0xb33387ca,0x6b43cd99, -}; -static long Q[] = { -/* 0x3fff0000,0x80000000,0x00000000, */ -0x40010000,0xa8003b33,0xa4696307, -0x40020000,0x8666a51c,0x62d7fec2, -0x40010000,0x8666a5d7,0xd072da32, -}; -static long A[] = { -0x3fff0000,0x80000000,0x00000000, -0x3ffe0000,0xfa83b2db,0x722a033a, -0x3ffe0000,0xf5257d15,0x2486cc2c, -0x3ffe0000,0xefe4b99b,0xdcdaf5cb, -0x3ffe0000,0xeac0c6e7,0xdd24392f, -0x3ffe0000,0xe5b906e7,0x7c8348a8, -0x3ffe0000,0xe0ccdeec,0x2a94e111, -0x3ffe0000,0xdbfbb797,0xdaf23755, -0x3ffe0000,0xd744fcca,0xd69d6af4, -0x3ffe0000,0xd2a81d91,0xf12ae45a, -0x3ffe0000,0xce248c15,0x1f8480e4, -0x3ffe0000,0xc9b9bd86,0x6e2f27a3, -0x3ffe0000,0xc5672a11,0x5506dadd, -0x3ffe0000,0xc12c4cca,0x66709456, -0x3ffe0000,0xbd08a39f,0x580c36bf, -0x3ffe0000,0xb8fbaf47,0x62fb9ee9, -0x3ffe0000,0xb504f333,0xf9de6484, -0x3ffe0000,0xb123f581,0xd2ac2590, -0x3ffe0000,0xad583eea,0x42a14ac6, -0x3ffe0000,0xa9a15ab4,0xea7c0ef8, -0x3ffe0000,0xa5fed6a9,0xb15138ea, -0x3ffe0000,0xa2704303,0x0c496819, -0x3ffe0000,0x9ef53260,0x91a111ae, -0x3ffe0000,0x9b8d39b9,0xd54e5539, -0x3ffe0000,0x9837f051,0x8db8a96f, -0x3ffe0000,0x94f4efa8,0xfef70961, -0x3ffe0000,0x91c3d373,0xab11c336, -0x3ffe0000,0x8ea4398b,0x45cd53c0, -0x3ffe0000,0x8b95c1e3,0xea8bd6e7, -0x3ffe0000,0x88980e80,0x92da8527, -0x3ffe0000,0x85aac367,0xcc487b15, -0x3ffe0000,0x82cd8698,0xac2ba1d7, -0x3ffe0000,0x80000000,0x00000000, -}; -static long B[51] = { -0x00000000,0x00000000,0x00000000, -0x3fbd0000,0xf73a18f5,0xdb301f87, -0xbfbc0000,0xbf4a2932,0x3e46ac15, -0x3fb90000,0xcb12a091,0xba667944, -0x3fbc0000,0xe69a2ee6,0x40b4ff78, -0xbfbb0000,0xee53e383,0x5069c895, -0x3fbc0000,0xf8ab4325,0x93767cde, -0xbfbd0000,0xaefdc093,0x25e0a10c, -0x3fbd0000,0xb2fb1366,0xea957d3e, -0x3fbd0000,0x93015191,0xeb345d89, -0x3fbb0000,0xe5ebfb10,0xb88380d9, -0xbfbd0000,0xbeddc1ec,0x288c045d, -0x3fbd0000,0x8d5a4630,0x5c85eded, -0x3fba0000,0xfd6d8e0a,0xe5ac9d82, -0xbfb90000,0x8373af14,0xeb586dfd, -0xbfbc0000,0xe8da91cf,0x7aacf938, -0x00000000,0x00000000,0x00000000, -}; -static long R[] = { -0x3fee0000,0xfd2aee1d,0x530ea69b, -0x3ff20000,0xa1825960,0x8e7ec746, -0x3ff50000,0xaec3fd6a,0xadda63b6, -0x3ff80000,0x9d955b7c,0xfd99c104, -0x3ffa0000,0xe35846b8,0x249de05e, -0x3ffc0000,0xf5fdeffc,0x162c5d1d, -0x3ffe0000,0xb17217f7,0xd1cf79aa, -}; - -#define douba(k) (*(long double *)&A[3*(k)]) -#define doubb(k) (*(long double *)&B[3*(k)]) -#define MEXP (NXT*16384.0L) -#ifdef DENORMAL -#define MNEXP (-NXT*(16384.0L+64.0L)) -#else -#define MNEXP (-NXT*16382.0L) -#endif -static long L[3] = {0x3ffd0000,0xe2a8eca5,0x705fc2ef}; -#define LOG2EA (*(long double *)(&L[0])) -#endif - - -#define F W -#define Fa Wa -#define Fb Wb -#define G W -#define Ga Wa -#define Gb u -#define H W -#define Ha Wb -#define Hb Wb - -#ifndef __MINGW32__ -extern long double MAXNUML; -#endif - -static VOLATILE long double z; -static long double w, W, Wa, Wb, ya, yb, u; - -#ifdef __MINGW32__ -static __inline__ long double reducl( long double ); -extern long double powil ( long double, int ); -extern long double powl ( long double x, long double y); -#else -#ifdef ANSIPROT -extern long double floorl ( long double ); -extern long double fabsl ( long double ); -extern long double frexpl ( long double, int * ); -extern long double ldexpl ( long double, int ); -extern long double polevll ( long double, void *, int ); -extern long double p1evll ( long double, void *, int ); -extern long double powil ( long double, int ); -extern int isnanl ( long double ); -extern int isfinitel ( long double ); -static long double reducl( long double ); -extern int signbitl ( long double ); -#else -long double floorl(), fabsl(), frexpl(), ldexpl(); -long double polevll(), p1evll(), powil(); -static long double reducl(); -int isnanl(), isfinitel(), signbitl(); -#endif - -#ifdef INFINITIES -extern long double INFINITYL; -#else -#define INFINITYL MAXNUML -#endif - -#ifdef NANS -extern long double NANL; -#endif -#ifdef MINUSZERO -extern long double NEGZEROL; -#endif - -#endif /* __MINGW32__ */ - -long double powl( x, y ) -long double x, y; -{ -/* double F, Fa, Fb, G, Ga, Gb, H, Ha, Hb */ -int i, nflg, iyflg, yoddint; -long e; - -if( y == 0.0L ) - return( 1.0L ); - -#ifdef NANS -if( isnanl(x) ) - { - _SET_ERRNO (EDOM); - return( x ); - } -if( isnanl(y) ) - { - _SET_ERRNO (EDOM); - return( y ); - } -#endif - -if( y == 1.0L ) - return( x ); - -if( isinfl(y) && (x == -1.0L || x == 1.0L) ) - return( y ); - -if( x == 1.0L ) - return( 1.0L ); - -if( y >= MAXNUML ) - { - _SET_ERRNO (ERANGE); -#ifdef INFINITIES - if( x > 1.0L ) - return( INFINITYL ); -#else - if( x > 1.0L ) - return( MAXNUML ); -#endif - if( x > 0.0L && x < 1.0L ) - return( 0.0L ); -#ifdef INFINITIES - if( x < -1.0L ) - return( INFINITYL ); -#else - if( x < -1.0L ) - return( MAXNUML ); -#endif - if( x > -1.0L && x < 0.0L ) - return( 0.0L ); - } -if( y <= -MAXNUML ) - { - _SET_ERRNO (ERANGE); - if( x > 1.0L ) - return( 0.0L ); -#ifdef INFINITIES - if( x > 0.0L && x < 1.0L ) - return( INFINITYL ); -#else - if( x > 0.0L && x < 1.0L ) - return( MAXNUML ); -#endif - if( x < -1.0L ) - return( 0.0L ); -#ifdef INFINITIES - if( x > -1.0L && x < 0.0L ) - return( INFINITYL ); -#else - if( x > -1.0L && x < 0.0L ) - return( MAXNUML ); -#endif - } -if( x >= MAXNUML ) - { -#if INFINITIES - if( y > 0.0L ) - return( INFINITYL ); -#else - if( y > 0.0L ) - return( MAXNUML ); -#endif - return( 0.0L ); - } - -w = floorl(y); -/* Set iyflg to 1 if y is an integer. */ -iyflg = 0; -if( w == y ) - iyflg = 1; - -/* Test for odd integer y. */ -yoddint = 0; -if( iyflg ) - { - ya = fabsl(y); - ya = floorl(0.5L * ya); - yb = 0.5L * fabsl(w); - if( ya != yb ) - yoddint = 1; - } - -if( x <= -MAXNUML ) - { - if( y > 0.0L ) - { -#ifdef INFINITIES - if( yoddint ) - return( -INFINITYL ); - return( INFINITYL ); -#else - if( yoddint ) - return( -MAXNUML ); - return( MAXNUML ); -#endif - } - if( y < 0.0L ) - { -#ifdef MINUSZERO - if( yoddint ) - return( NEGZEROL ); -#endif - return( 0.0 ); - } - } - - -nflg = 0; /* flag = 1 if x<0 raised to integer power */ -if( x <= 0.0L ) - { - if( x == 0.0L ) - { - if( y < 0.0 ) - { -#ifdef MINUSZERO - if( signbitl(x) && yoddint ) - return( -INFINITYL ); -#endif -#ifdef INFINITIES - return( INFINITYL ); -#else - return( MAXNUML ); -#endif - } - if( y > 0.0 ) - { -#ifdef MINUSZERO - if( signbitl(x) && yoddint ) - return( NEGZEROL ); -#endif - return( 0.0 ); - } - if( y == 0.0L ) - return( 1.0L ); /* 0**0 */ - else - return( 0.0L ); /* 0**y */ - } - else - { - if( iyflg == 0 ) - { /* noninteger power of negative number */ - mtherr( fname, DOMAIN ); - _SET_ERRNO (EDOM); -#ifdef NANS - return(NANL); -#else - return(0.0L); -#endif - } - nflg = 1; - } - } - -/* Integer power of an integer. */ - -if( iyflg ) - { - i = w; - w = floorl(x); - if( (w == x) && (fabsl(y) < 32768.0) ) - { - w = powil( x, (int) y ); - return( w ); - } - } - - -if( nflg ) - x = fabsl(x); - -/* separate significand from exponent */ -x = frexpl( x, &i ); -e = i; - -/* find significand in antilog table A[] */ -i = 1; -if( x <= douba(17) ) - i = 17; -if( x <= douba(i+8) ) - i += 8; -if( x <= douba(i+4) ) - i += 4; -if( x <= douba(i+2) ) - i += 2; -if( x >= douba(1) ) - i = -1; -i += 1; - - -/* Find (x - A[i])/A[i] - * in order to compute log(x/A[i]): - * - * log(x) = log( a x/a ) = log(a) + log(x/a) - * - * log(x/a) = log(1+v), v = x/a - 1 = (x-a)/a - */ -x -= douba(i); -x -= doubb(i/2); -x /= douba(i); - - -/* rational approximation for log(1+v): - * - * log(1+v) = v - v**2/2 + v**3 P(v) / Q(v) - */ -z = x*x; -w = x * ( z * polevll( x, P, 3 ) / p1evll( x, Q, 3 ) ); -w = w - ldexpl( z, -1 ); /* w - 0.5 * z */ - -/* Convert to base 2 logarithm: - * multiply by log2(e) = 1 + LOG2EA - */ -z = LOG2EA * w; -z += w; -z += LOG2EA * x; -z += x; - -/* Compute exponent term of the base 2 logarithm. */ -w = -i; -w = ldexpl( w, -LNXT ); /* divide by NXT */ -w += e; -/* Now base 2 log of x is w + z. */ - -/* Multiply base 2 log by y, in extended precision. */ - -/* separate y into large part ya - * and small part yb less than 1/NXT - */ -ya = reducl(y); -yb = y - ya; - -/* (w+z)(ya+yb) - * = w*ya + w*yb + z*y - */ -F = z * y + w * yb; -Fa = reducl(F); -Fb = F - Fa; - -G = Fa + w * ya; -Ga = reducl(G); -Gb = G - Ga; - -H = Fb + Gb; -Ha = reducl(H); -w = ldexpl( Ga+Ha, LNXT ); - -/* Test the power of 2 for overflow */ -if( w > MEXP ) - { -/* printf( "w = %.4Le ", w ); */ - _SET_ERRNO (ERANGE); - mtherr( fname, OVERFLOW ); - return( MAXNUML ); - } - -if( w < MNEXP ) - { -/* printf( "w = %.4Le ", w ); */ - _SET_ERRNO (ERANGE); - mtherr( fname, UNDERFLOW ); - return( 0.0L ); - } - -e = w; -Hb = H - Ha; - -if( Hb > 0.0L ) - { - e += 1; - Hb -= (1.0L/NXT); /*0.0625L;*/ - } - -/* Now the product y * log2(x) = Hb + e/NXT. - * - * Compute base 2 exponential of Hb, - * where -0.0625 <= Hb <= 0. - */ -z = Hb * polevll( Hb, R, 6 ); /* z = 2**Hb - 1 */ - -/* Express e/NXT as an integer plus a negative number of (1/NXT)ths. - * Find lookup table entry for the fractional power of 2. - */ -if( e < 0 ) - i = 0; -else - i = 1; -i = e/NXT + i; -e = NXT*i - e; -w = douba( e ); -z = w * z; /* 2**-e * ( 1 + (2**Hb-1) ) */ -z = z + w; -z = ldexpl( z, i ); /* multiply by integer power of 2 */ - -if( nflg ) - { -/* For negative x, - * find out if the integer exponent - * is odd or even. - */ - w = ldexpl( y, -1 ); - w = floorl(w); - w = ldexpl( w, 1 ); - if( w != y ) - z = -z; /* odd exponent */ - } - -return( z ); -} - - -/* Find a multiple of 1/NXT that is within 1/NXT of x. */ -static __inline__ long double reducl(x) -long double x; -{ -long double t; - -t = ldexpl( x, LNXT ); -t = floorl( t ); -t = ldexpl( t, -LNXT ); -return(t); -} - -/* powil.c - * - * Real raised to integer power, long double precision - * - * - * - * SYNOPSIS: - * - * long double x, y, powil(); - * int n; - * - * y = powil( x, n ); - * - * - * - * DESCRIPTION: - * - * Returns argument x raised to the nth power. - * The routine efficiently decomposes n as a sum of powers of - * two. The desired power is a product of two-to-the-kth - * powers of x. Thus to compute the 32767 power of x requires - * 28 multiplications instead of 32767 multiplications. - * - * - * - * ACCURACY: - * - * - * Relative error: - * arithmetic x domain n domain # trials peak rms - * IEEE .001,1000 -1022,1023 50000 4.3e-17 7.8e-18 - * IEEE 1,2 -1022,1023 20000 3.9e-17 7.6e-18 - * IEEE .99,1.01 0,8700 10000 3.6e-16 7.2e-17 - * - * Returns INFINITY on overflow, zero on underflow. - * - */ diff --git a/winsup/mingw/mingwex/math/remainder.S b/winsup/mingw/mingwex/math/remainder.S deleted file mode 100644 index 01930d3ba..000000000 --- a/winsup/mingw/mingwex/math/remainder.S +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - - .file "remainder.S" - .text - .align 4 -.globl _remainder - .def _remainder; .scl 2; .type 32; .endef -_remainder: - fldl 12(%esp) - fldl 4(%esp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/remainderf.S b/winsup/mingw/mingwex/math/remainderf.S deleted file mode 100644 index 81e78415a..000000000 --- a/winsup/mingw/mingwex/math/remainderf.S +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - - .file "remainderf.S" - .text - .align 4 -.globl _remainder - .def _remainderf; .scl 2; .type 32; .endef -_remainderf: - flds 8(%esp) - flds 4(%esp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/remainderl.S b/winsup/mingw/mingwex/math/remainderl.S deleted file mode 100644 index b5ce3736d..000000000 --- a/winsup/mingw/mingwex/math/remainderl.S +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "remainderl.S" - .text - .align 4 -.globl _remainderl - .def _remainderl; .scl 2; .type 32; .endef -_remainderl: - fldt 16(%esp) - fldt 4(%esp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - ret diff --git a/winsup/mingw/mingwex/math/remquo.S b/winsup/mingw/mingwex/math/remquo.S deleted file mode 100644 index 987c37ca5..000000000 --- a/winsup/mingw/mingwex/math/remquo.S +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Written by Ulrich Drepper <drepper@cygnus.com>. - * Based on e_remainder by J.T. Conklin <jtc@netbsd.org>. - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.ne - * Public domain. - */ - - .file "remquo.S" - .text - .align 4; -.globl _remquo; -_remquo: - fldl 4 +8(%esp) - fldl 4(%esp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - movl %eax, %ecx - shrl $8, %eax - shrl $12, %ecx - andl $4, %ecx - andl $3, %eax - orl %eax, %ecx - movl $0xef2960, %eax - shrl %cl, %eax - andl $3, %eax - movl 4 +8 +8(%esp), %ecx - movl 4 +4(%esp), %edx - xorl 4 +8 +4(%esp), %edx - testl $0x80000000, %edx - jz 1f - negl %eax -1: movl %eax, (%ecx) - - ret diff --git a/winsup/mingw/mingwex/math/remquof.S b/winsup/mingw/mingwex/math/remquof.S deleted file mode 100644 index af540ef5b..000000000 --- a/winsup/mingw/mingwex/math/remquof.S +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Written by Ulrich Drepper <drepper@cygnus.com>. - * Based on e_remainder by J.T. Conklin <jtc@netbsd.org>. - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.ne - * Public domain. - */ - - .file "remquo.S" - .text - .align 4; -.globl _remquof; -_remquof: - flds 4 +4(%esp) - flds 4(%esp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - movl %eax, %ecx - shrl $8, %eax - shrl $12, %ecx - andl $4, %ecx - andl $3, %eax - orl %eax, %ecx - movl $0xef2960, %eax - shrl %cl, %eax - andl $3, %eax - movl 4 +4 +4(%esp), %ecx - movl 4(%esp), %edx - xorl 4 +4(%esp), %edx - testl $0x80000000, %edx - jz 1f - negl %eax -1: movl %eax, (%ecx) - - ret diff --git a/winsup/mingw/mingwex/math/remquol.S b/winsup/mingw/mingwex/math/remquol.S deleted file mode 100644 index e6f1b5420..000000000 --- a/winsup/mingw/mingwex/math/remquol.S +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Written by Ulrich Drepper <drepper@cygnus.com>. - * Based on e_remainder by J.T. Conklin <jtc@netbsd.org>. - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - * Public domain. - */ - .text - .align 4; -.globl _remquol; - _remquol: - fldt 4 +12(%esp) - fldt 4(%esp) -1: fprem1 - fstsw %ax - sahf - jp 1b - fstp %st(1) - movl %eax, %ecx - shrl $8, %eax - shrl $12, %ecx - andl $4, %ecx - andl $3, %eax - orl %eax, %ecx - movl $0xef2960, %eax - shrl %cl, %eax - andl $3, %eax - movl 4 +12 +12(%esp), %ecx - movl 4 +8(%esp), %edx - xorl 4 +12 +8(%esp), %edx - testl $0x8000, %edx - jz 1f - negl %eax -1: movl %eax, (%ecx) - - ret diff --git a/winsup/mingw/mingwex/math/rint.c b/winsup/mingw/mingwex/math/rint.c deleted file mode 100644 index 3198f4b26..000000000 --- a/winsup/mingw/mingwex/math/rint.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <math.h> -double rint (double x){ - double retval; - __asm__ ("frndint;" : "=t" (retval) : "0" (x)); - return retval; -} diff --git a/winsup/mingw/mingwex/math/rintf.c b/winsup/mingw/mingwex/math/rintf.c deleted file mode 100644 index 0b05e8f89..000000000 --- a/winsup/mingw/mingwex/math/rintf.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -float rintf (float x){ - float retval; - __asm__ ("frndint;": "=t" (retval) : "0" (x)); - return retval; -} diff --git a/winsup/mingw/mingwex/math/rintl.c b/winsup/mingw/mingwex/math/rintl.c deleted file mode 100644 index ffc9d1107..000000000 --- a/winsup/mingw/mingwex/math/rintl.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <math.h> - -long double rintl (long double x){ - long double retval; - __asm__ ("frndint;": "=t" (retval) : "0" (x)); - return retval; -} diff --git a/winsup/mingw/mingwex/math/round.c b/winsup/mingw/mingwex/math/round.c deleted file mode 100644 index 9d8e949e4..000000000 --- a/winsup/mingw/mingwex/math/round.c +++ /dev/null @@ -1,29 +0,0 @@ -#include <fenv.h> - -double -round (double x) { - double retval; - unsigned short saved_cw, _cw; - __asm__ ( - "fnstcw %0;" - : "=m" (saved_cw) - ); /* save control word */ - _cw = ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - | (x > 0.0 ? FE_UPWARD : FE_DOWNWARD); /* round away from zero */ - __asm__ ( - "fldcw %0;" - : - : "m" (_cw) - ); /* load the rounding control */ - __asm__ ( - "frndint;" - : "=t" (retval) - : "0" (x) - ); /* do the rounding */ - __asm__ ( - "fldcw %0;" - : - : "m" (saved_cw) - ); /* restore control word */ - return retval; -} diff --git a/winsup/mingw/mingwex/math/roundf.c b/winsup/mingw/mingwex/math/roundf.c deleted file mode 100644 index 6ae81bdd8..000000000 --- a/winsup/mingw/mingwex/math/roundf.c +++ /dev/null @@ -1,29 +0,0 @@ -#include <fenv.h> - -float -roundf (float x) { - double retval; - unsigned short saved_cw, _cw; - __asm__ ( - "fnstcw %0;" - : "=m" (saved_cw) - ); /* save control word */ - _cw = ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - | (x > 0.0 ? FE_UPWARD : FE_DOWNWARD); /* round away from zero */ - __asm__ ( - "fldcw %0;" - : - : "m" (_cw) - ); /* load the rounding control */ - __asm__ ( - "frndint;" - : "=t" (retval) - : "0" (x) - ); /* do the rounding */ - __asm__ ( - "fldcw %0;" - : - : "m" (saved_cw) - ); /* restore control word */ - return retval; -} diff --git a/winsup/mingw/mingwex/math/roundl.c b/winsup/mingw/mingwex/math/roundl.c deleted file mode 100644 index de3334a62..000000000 --- a/winsup/mingw/mingwex/math/roundl.c +++ /dev/null @@ -1,30 +0,0 @@ -#include <fenv.h> - -long double -roundl (long double x) { - long double retval; - unsigned short saved_cw, _cw; - __asm__ ( - "fnstcw %0;" - : "=m" (saved_cw) - ); /* save control word */ - _cw = ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD | FE_TOWARDZERO) - | (x > 0.0 ? FE_UPWARD : FE_DOWNWARD); /* round away from zero */ - __asm__ ( - "fldcw %0;" - : - : "m" (_cw) - ); /* load the rounding control */ - __asm__ ( - "frndint;" - : "=t" (retval) - : "0" (x) - ); /* do the rounding */ - __asm__ ( - "fldcw %0;" - : - : "m" (saved_cw) - ); /* restore control word */ - return retval; -} - diff --git a/winsup/mingw/mingwex/math/scalbn.S b/winsup/mingw/mingwex/math/scalbn.S deleted file mode 100644 index 76e2d396e..000000000 --- a/winsup/mingw/mingwex/math/scalbn.S +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - - .file "scalbn.S" - .text - .align 4 -.globl _scalbn - .def _scalbn; .scl 2; .type 32; .endef -_scalbn: - fildl 12(%esp) - fldl 4(%esp) - fscale - fstp %st(1) - ret - -.globl _scalbln - .set _scalbln,_scalbn diff --git a/winsup/mingw/mingwex/math/scalbnf.S b/winsup/mingw/mingwex/math/scalbnf.S deleted file mode 100644 index 1fe42a3de..000000000 --- a/winsup/mingw/mingwex/math/scalbnf.S +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - */ - - .file "scalbnf.S" - .text - .align 4 -.globl _scalbnf - .def _scalbnf; .scl 2; .type 32; .endef -_scalbnf: - fildl 8(%esp) - flds 4(%esp) - fscale - fstp %st(1) - ret - -.globl _scalblnf - .set _scalblnf,_scalbnf diff --git a/winsup/mingw/mingwex/math/scalbnl.S b/winsup/mingw/mingwex/math/scalbnl.S deleted file mode 100644 index 77eaff7be..000000000 --- a/winsup/mingw/mingwex/math/scalbnl.S +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Changes for long double by Ulrich Drepper <drepper@cygnus.com> - * Public domain. - */ - - .file "scalbnl.S" - .text - .align 4 -.globl _scalbnl - .def _scalbnl; .scl 2; .type 32; .endef -_scalbnl: - fildl 16(%esp) - fldt 4(%esp) - fscale - fstp %st(1) - ret - -.globl _scalblnl - .set _scalblnl,_scalbnl diff --git a/winsup/mingw/mingwex/math/signbit.c b/winsup/mingw/mingwex/math/signbit.c deleted file mode 100644 index 7f86c86a3..000000000 --- a/winsup/mingw/mingwex/math/signbit.c +++ /dev/null @@ -1,13 +0,0 @@ -#define __FP_SIGNBIT 0x0200 - -int __signbit (double x) { - unsigned short sw; - __asm__ ("fxam; fstsw %%ax;" - : "=a" (sw) - : "t" (x) ); - return sw & __FP_SIGNBIT; -} - -#undef signbit -int __attribute__ ((alias ("__signbit"))) signbit (double); - diff --git a/winsup/mingw/mingwex/math/signbitf.c b/winsup/mingw/mingwex/math/signbitf.c deleted file mode 100644 index 5bbf675ad..000000000 --- a/winsup/mingw/mingwex/math/signbitf.c +++ /dev/null @@ -1,10 +0,0 @@ -#define __FP_SIGNBIT 0x0200 - -int __signbitf (float x) { - unsigned short sw; - __asm__ ("fxam; fstsw %%ax;" - : "=a" (sw) - : "t" (x) ); - return sw & __FP_SIGNBIT; -} -int __attribute__ ((alias ("__signbitf"))) signbitf (float); diff --git a/winsup/mingw/mingwex/math/signbitl.c b/winsup/mingw/mingwex/math/signbitl.c deleted file mode 100644 index 78f990350..000000000 --- a/winsup/mingw/mingwex/math/signbitl.c +++ /dev/null @@ -1,11 +0,0 @@ -#define __FP_SIGNBIT 0x0200 - -int __signbitl (long double x) { - unsigned short sw; - __asm__ ("fxam; fstsw %%ax;" - : "=a" (sw) - : "t" (x) ); - return sw & __FP_SIGNBIT; -} - -int __attribute__ ((alias ("__signbitl"))) signbitl (long double); diff --git a/winsup/mingw/mingwex/math/sinf.S b/winsup/mingw/mingwex/math/sinf.S deleted file mode 100644 index 23e986d11..000000000 --- a/winsup/mingw/mingwex/math/sinf.S +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "sinf.S" - .text - .align 4 -.globl _sinf - .def _sinf; .scl 2; .type 32; .endef -_sinf: - flds 4(%esp) - fsin - fnstsw %ax - testl $0x400,%eax - jnz 1f - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fnstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fsin - ret diff --git a/winsup/mingw/mingwex/math/sinhf.c b/winsup/mingw/mingwex/math/sinhf.c deleted file mode 100644 index 3d6bcff41..000000000 --- a/winsup/mingw/mingwex/math/sinhf.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <math.h> -float sinhf (float x) - {return (float) sinh (x);} diff --git a/winsup/mingw/mingwex/math/sinhl.c b/winsup/mingw/mingwex/math/sinhl.c deleted file mode 100644 index ca6a370b9..000000000 --- a/winsup/mingw/mingwex/math/sinhl.c +++ /dev/null @@ -1,172 +0,0 @@ -/* sinhl.c - * - * Hyperbolic sine, long double precision - * - * - * - * SYNOPSIS: - * - * long double x, y, sinhl(); - * - * y = sinhl( x ); - * - * - * - * DESCRIPTION: - * - * Returns hyperbolic sine of argument in the range MINLOGL to - * MAXLOGL. - * - * The range is partitioned into two segments. If |x| <= 1, a - * rational function of the form x + x**3 P(x)/Q(x) is employed. - * Otherwise the calculation is sinh(x) = ( exp(x) - exp(-x) )/2. - * - * - * - * ACCURACY: - * - * Relative error: - * arithmetic domain # trials peak rms - * IEEE -2,2 10000 1.5e-19 3.9e-20 - * IEEE +-10000 30000 1.1e-19 2.8e-20 - * - */ - -/* -Cephes Math Library Release 2.7: January, 1998 -Copyright 1984, 1991, 1998 by Stephen L. Moshier -*/ - -/* -Modified for mingw -2002-07-22 Danny Smith <dannysmith@users.sourceforge.net> -*/ - -#ifdef __MINGW32__ -#include "cephes_mconf.h" -#else -#include "mconf.h" -#endif - -#ifndef _SET_ERRNO -#define _SET_ERRNO(x) -#endif - -#ifdef UNK -static long double P[] = { - 1.7550769032975377032681E-6L, - 4.1680702175874268714539E-4L, - 3.0993532520425419002409E-2L, - 9.9999999999999999998002E-1L, -}; -static long double Q[] = { - 1.7453965448620151484660E-8L, --5.9116673682651952419571E-6L, - 1.0599252315677389339530E-3L, --1.1403880487744749056675E-1L, - 6.0000000000000000000200E0L, -}; -#endif - -#ifdef IBMPC -static const unsigned short P[] = { -0xec6a,0xd942,0xfbb3,0xeb8f,0x3feb, XPD -0x365e,0xb30a,0xe437,0xda86,0x3ff3, XPD -0x8890,0x01f6,0x2612,0xfde6,0x3ff9, XPD -0x0000,0x0000,0x0000,0x8000,0x3fff, XPD -}; -static const unsigned short Q[] = { -0x4edd,0x4c21,0xad09,0x95ed,0x3fe5, XPD -0x4376,0x9b70,0xd605,0xc65c,0xbfed, XPD -0xc8ad,0x5d21,0x3069,0x8aed,0x3ff5, XPD -0x9c32,0x6374,0x2d4b,0xe98d,0xbffb, XPD -0x0000,0x0000,0x0000,0xc000,0x4001, XPD -}; -#endif - -#ifdef MIEEE -static long P[] = { -0x3feb0000,0xeb8ffbb3,0xd942ec6a, -0x3ff30000,0xda86e437,0xb30a365e, -0x3ff90000,0xfde62612,0x01f68890, -0x3fff0000,0x80000000,0x00000000, -}; -static long Q[] = { -0x3fe50000,0x95edad09,0x4c214edd, -0xbfed0000,0xc65cd605,0x9b704376, -0x3ff50000,0x8aed3069,0x5d21c8ad, -0xbffb0000,0xe98d2d4b,0x63749c32, -0x40010000,0xc0000000,0x00000000, -}; -#endif - -#ifndef __MINGW32__ -extern long double MAXNUML, MAXLOGL, MINLOGL, LOGE2L; -#ifdef ANSIPROT -extern long double fabsl ( long double ); -extern long double expl ( long double ); -extern long double polevll ( long double, void *, int ); -extern long double p1evll ( long double, void *, int ); -#else -long double fabsl(), expl(), polevll(), p1evll(); -#endif -#ifdef INFINITIES -extern long double INFINITYL; -#endif -#ifdef NANS -extern long double NANL; -#endif -#endif /* __MINGW32__ */ - -long double sinhl(x) -long double x; -{ -long double a; - -#ifdef MINUSZERO -if( x == 0.0 ) - return(x); -#endif -#ifdef NANS -if (isnanl(x)) - { - _SET_ERRNO(EDOM); - } -#endif -a = fabsl(x); -if( (x > (MAXLOGL + LOGE2L)) || (x > -(MINLOGL-LOGE2L) ) ) - { - mtherr( "sinhl", DOMAIN ); - _SET_ERRNO(ERANGE); -#ifdef INFINITIES - if( x > 0.0L ) - return( INFINITYL ); - else - return( -INFINITYL ); -#else - if( x > 0.0L ) - return( MAXNUML ); - else - return( -MAXNUML ); -#endif - } -if( a > 1.0L ) - { - if( a >= (MAXLOGL - LOGE2L) ) - { - a = expl(0.5L*a); - a = (0.5L * a) * a; - if( x < 0.0L ) - a = -a; - return(a); - } - a = expl(a); - a = 0.5L*a - (0.5L/a); - if( x < 0.0L ) - a = -a; - return(a); - } - -a *= a; -return( x + x * a * (polevll(a,P,3)/polevll(a,Q,4)) ); -} diff --git a/winsup/mingw/mingwex/math/sinl.S b/winsup/mingw/mingwex/math/sinl.S deleted file mode 100644 index 16b2d9e50..000000000 --- a/winsup/mingw/mingwex/math/sinl.S +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - - .file "sinl.S" - .text - .align 4 -.globl _sinl - .def _sinl; .scl 2; .type 32; .endef -_sinl: - fldt 4(%esp) - fsin - fnstsw %ax - testl $0x400,%eax - jnz 1f - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fnstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fsin - ret diff --git a/winsup/mingw/mingwex/math/sqrtf.c b/winsup/mingw/mingwex/math/sqrtf.c deleted file mode 100644 index 55ca39dbe..000000000 --- a/winsup/mingw/mingwex/math/sqrtf.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <math.h> - -float -sqrtf (float x) -{ - float res; - asm ("fsqrt" : "=t" (res) : "0" (x)); - return res; -} diff --git a/winsup/mingw/mingwex/math/sqrtl.c b/winsup/mingw/mingwex/math/sqrtl.c deleted file mode 100644 index 0bd301390..000000000 --- a/winsup/mingw/mingwex/math/sqrtl.c +++ /dev/null @@ -1,8 +0,0 @@ -#include <math.h> -long double -sqrtl (long double x) -{ - long double res; - asm ("fsqrt" : "=t" (res) : "0" (x)); - return res; -} diff --git a/winsup/mingw/mingwex/math/tanf.S b/winsup/mingw/mingwex/math/tanf.S deleted file mode 100644 index 540fc6836..000000000 --- a/winsup/mingw/mingwex/math/tanf.S +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - .file "tanf.S" - .text - .align 4 -.globl _tanf - .def _tanf; .scl 2; .type 32; .endef -_tanf: - flds 4(%esp) - fptan - fnstsw %ax - testl $0x400,%eax - jnz 1f - fstp %st(0) - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fptan - fstp %st(0) - ret diff --git a/winsup/mingw/mingwex/math/tanhf.c b/winsup/mingw/mingwex/math/tanhf.c deleted file mode 100644 index b7c56f05c..000000000 --- a/winsup/mingw/mingwex/math/tanhf.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <math.h> -float tanhf (float x) - {return (float) tanh (x);} diff --git a/winsup/mingw/mingwex/math/tanhl.c b/winsup/mingw/mingwex/math/tanhl.c deleted file mode 100644 index 3727b3990..000000000 --- a/winsup/mingw/mingwex/math/tanhl.c +++ /dev/null @@ -1,151 +0,0 @@ -/* tanhl.c - * - * Hyperbolic tangent, long double precision - * - * - * - * SYNOPSIS: - * - * long double x, y, tanhl(); - * - * y = tanhl( x ); - * - * - * - * DESCRIPTION: - * - * Returns hyperbolic tangent of argument in the range MINLOGL to - * MAXLOGL. - * - * A rational function is used for |x| < 0.625. The form - * x + x**3 P(x)/Q(x) of Cody _& Waite is employed. - * Otherwise, - * tanh(x) = sinh(x)/cosh(x) = 1 - 2/(exp(2x) + 1). - * - * - * - * ACCURACY: - * - * Relative error: - * arithmetic domain # trials peak rms - * IEEE -2,2 30000 1.3e-19 2.4e-20 - * - */ - -/* -Cephes Math Library Release 2.7: May, 1998 -Copyright 1984, 1987, 1989, 1998 by Stephen L. Moshier -*/ - -/* -Modified for mingw -2002-07-22 Danny Smith <dannysmith@users.sourceforge.net> -*/ - -#ifdef __MINGW32__ -#include "cephes_mconf.h" -#else -#include "mconf.h" -#endif - -#ifndef _SET_ERRNO -#define _SET_ERRNO(x) -#endif - -#ifdef UNK -static long double P[] = { --6.8473739392677100872869E-5L, --9.5658283111794641589011E-1L, --8.4053568599672284488465E1L, --1.3080425704712825945553E3L, -}; -static long double Q[] = { -/* 1.0000000000000000000000E0L,*/ - 9.6259501838840336946872E1L, - 1.8218117903645559060232E3L, - 3.9241277114138477845780E3L, -}; -#endif - -#ifdef IBMPC -static short P[] = { -0xd2a4,0x1b0c,0x8f15,0x8f99,0xbff1, XPD -0x5959,0x9111,0x9cc7,0xf4e2,0xbffe, XPD -0xb576,0xef5e,0x6d57,0xa81b,0xc005, XPD -0xe3be,0xbfbd,0x5cbc,0xa381,0xc009, XPD -}; -static short Q[] = { -/*0x0000,0x0000,0x0000,0x8000,0x3fff,*/ -0x687f,0xce24,0xdd6c,0xc084,0x4005, XPD -0x3793,0xc95f,0xfa2f,0xe3b9,0x4009, XPD -0xd5a2,0x1f9c,0x0b1b,0xf542,0x400a, XPD -}; -#endif - -#ifdef MIEEE -static long P[] = { -0xbff10000,0x8f998f15,0x1b0cd2a4, -0xbffe0000,0xf4e29cc7,0x91115959, -0xc0050000,0xa81b6d57,0xef5eb576, -0xc0090000,0xa3815cbc,0xbfbde3be, -}; -static long Q[] = { -/*0x3fff0000,0x80000000,0x00000000,*/ -0x40050000,0xc084dd6c,0xce24687f, -0x40090000,0xe3b9fa2f,0xc95f3793, -0x400a0000,0xf5420b1b,0x1f9cd5a2, -}; -#endif - -#ifndef __MINGW32__ -extern long double MAXLOGL; -#ifdef ANSIPROT -extern long double fabsl ( long double ); -extern long double expl ( long double ); -extern long double polevll ( long double, void *, int ); -extern long double p1evll ( long double, void *, int ); -#else -long double fabsl(), expl(), polevll(), p1evll(); -#endif -#endif /* __MINGW32__ */ - -long double tanhl(x) -long double x; -{ -long double s, z; - -#ifdef MINUSZERO -if( x == 0.0L ) - return(x); -#endif -if (isnanl(x)) - { - _SET_ERRNO (EDOM); - return x; - } - -z = fabsl(x); -if( z > 0.5L * MAXLOGL ) - { - _SET_ERRNO (ERANGE); - if( x > 0 ) - return( 1.0L ); - else - return( -1.0L ); - } -if( z >= 0.625L ) - { - s = expl(2.0*z); - z = 1.0L - 2.0/(s + 1.0L); - if( x < 0 ) - z = -z; - } -else - { - s = x * x; - z = polevll( s, P, 3 )/p1evll(s, Q, 3); - z = x * s * z; - z = x + z; - } -return( z ); -} diff --git a/winsup/mingw/mingwex/math/tanl.S b/winsup/mingw/mingwex/math/tanl.S deleted file mode 100644 index fd30019a8..000000000 --- a/winsup/mingw/mingwex/math/tanl.S +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Public domain. - * - * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. - * - * Removed header file dependency for use in libmingwex.a by - * Danny Smith <dannysmith@users.sourceforge.net> - */ - .file "tanl.S" - .text - .align 4 -.globl _tanl - .def _tanl; .scl 2; .type 32; .endef -_tanl: - fldt 4(%esp) - fptan - fnstsw %ax - testl $0x400,%eax - jnz 1f - fstp %st(0) - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fptan - fstp %st(0) - ret diff --git a/winsup/mingw/mingwex/math/trunc.c b/winsup/mingw/mingwex/math/trunc.c deleted file mode 100644 index 2b9931255..000000000 --- a/winsup/mingw/mingwex/math/trunc.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <fenv.h> -#include <math.h> - -double -trunc (double _x){ - double retval; - unsigned short saved_cw; - __asm__ ("fnstcw %0;": "=m" (saved_cw)); /* save FPU control word */ - __asm__ ("fldcw %0;" - : - : "m" ((saved_cw & ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD - | FE_TOWARDZERO)) | FE_TOWARDZERO) - ); - __asm__ ("frndint;" : "=t" (retval) : "0" (_x)); /* round towards zero */ - __asm__ ("fldcw %0;" : : "m" (saved_cw) ); /* restore saved control word */ - return retval; -} diff --git a/winsup/mingw/mingwex/math/truncf.c b/winsup/mingw/mingwex/math/truncf.c deleted file mode 100644 index 53fccb153..000000000 --- a/winsup/mingw/mingwex/math/truncf.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <fenv.h> -#include <math.h> - -float -truncf (float _x){ - float retval; - unsigned short saved_cw; - __asm__ ("fnstcw %0;": "=m" (saved_cw)); /* save FPU control word */ - __asm__ ("fldcw %0;" - : - : "m" ((saved_cw & ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD - | FE_TOWARDZERO)) | FE_TOWARDZERO) - ); - __asm__ ("frndint;" : "=t" (retval) : "0" (_x)); /* round towards zero */ - __asm__ ("fldcw %0;" : : "m" (saved_cw) ); /* restore saved control word */ - return retval; -} diff --git a/winsup/mingw/mingwex/math/truncl.c b/winsup/mingw/mingwex/math/truncl.c deleted file mode 100644 index 908197acc..000000000 --- a/winsup/mingw/mingwex/math/truncl.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <fenv.h> -#include <math.h> - -long double -truncl (long double _x){ - long double retval; - unsigned short saved_cw; - __asm__ ("fnstcw %0;": "=m" (saved_cw)); /* save FPU control word */ - __asm__ ("fldcw %0;" - : - : "m" ((saved_cw & ~(FE_TONEAREST | FE_DOWNWARD | FE_UPWARD - | FE_TOWARDZERO)) | FE_TOWARDZERO) - ); - __asm__ ("frndint;" : "=t" (retval) : "0" (_x)); /* round towards zero */ - __asm__ ("fldcw %0;" : : "m" (saved_cw) ); /* restore saved control word */ - return retval; -} diff --git a/winsup/mingw/mingwex/mbsinit.c b/winsup/mingw/mingwex/mbsinit.c deleted file mode 100644 index c130afebd..000000000 --- a/winsup/mingw/mingwex/mbsinit.c +++ /dev/null @@ -1,21 +0,0 @@ -/* This source code was extracted from the Q8 package created and placed - in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.24 of ISO/IEC 9899:1999 (E). - - It supports an encoding where all char codes are mapped - to the *same* code values within a wchar_t or wint_t, - so long as no other wchar_t codes are used by the program. - -*/ - -#include <wchar.h> - -int -mbsinit(ps) - const mbstate_t *ps; - { - return 1; /* don't have shift states */ - } - diff --git a/winsup/mingw/mingwex/mingw-fseek.c b/winsup/mingw/mingwex/mingw-fseek.c deleted file mode 100644 index 6a3b66119..000000000 --- a/winsup/mingw/mingwex/mingw-fseek.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Workaround for limitations on win9x where a file contents are - * not zero'd out if you seek past the end and then write. - * Copied from ming local-patch to binutils/bfd/libbfd.c written by - * Mumit Khan <khan@xraylith.wisc.edu> - */ - -#include <windows.h> -#include <stdio.h> -#include <io.h> - -#ifdef __GNUC__ -# define INLINE __inline__ -#elif defined _MSC_VER -# define INLINE __inline -#else -# define INLINE -#endif - -#define ZEROBLOCKSIZE 512 -static int __mingw_fseek_called; - -/* FIXME: put this in startup code and make os_platform_id global? - Or just get _osver from msvcrt.dll and bitest (_osver & 0x8000)? */ - -INLINE -static -int -__mingw_is_win9x (void) -{ - static DWORD os_platform_id = -1 ; - - if (os_platform_id == -1) - { - OSVERSIONINFO os_version_info; - memset (&os_version_info, 0, sizeof (OSVERSIONINFO)); - os_version_info.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); - GetVersionEx (&os_version_info); - - os_platform_id = os_version_info.dwPlatformId; - } - - /* Don't even bother to check for Win32s. */ - return os_platform_id == VER_PLATFORM_WIN32_WINDOWS; -} - -/* The fseek in Win9x runtime does not zero out the file if seeking past - the end; if you don't want random stuff from your disk included in your - output DLL/executable, use this version instead. On WinNT/Win2k, it - just calls runtime fseek(). - - CHECK/FIXME: Does this work for both text and binary modes?? */ - - -int -__mingw_fseek (FILE *fp, long offset, int whence) -{ -# undef fseek - __mingw_fseek_called = 1; - return fseek (fp, offset, whence); -} - -int -__mingw_fwrite (const void *buffer, size_t size, size_t count, FILE *fp) -{ -# undef fwrite - if ( __mingw_is_win9x () && __mingw_fseek_called) - { - DWORD actual_length, current_position; - __mingw_fseek_called = 0; - fflush (fp); - actual_length = GetFileSize ((HANDLE) _get_osfhandle (fileno (fp)), - NULL); - current_position = SetFilePointer ((HANDLE) _get_osfhandle (fileno (fp)), - 0, 0, FILE_CURRENT); -#ifdef DEBUG - printf ("__mingw_fwrite: current %ld, actual %ld\n", - current_position, actual_length); -#endif /* DEBUG */ - if (current_position > actual_length) - { - static char __mingw_zeros[ZEROBLOCKSIZE]; - long numleft; - - SetFilePointer ((HANDLE) _get_osfhandle (fileno (fp)), - 0, 0, FILE_END); - numleft = current_position - actual_length; - -#ifdef DEBUG - printf ("__mingw_fwrite: Seeking %ld bytes past end\n", numleft); -#endif /* DEBUG */ - while (numleft > 0) - { - DWORD nzeros = (numleft > ZEROBLOCKSIZE) - ? ZEROBLOCKSIZE : numleft; - DWORD written; - if (! WriteFile ((HANDLE) _get_osfhandle (fileno (fp)), - __mingw_zeros, nzeros, &written, NULL)) - { - /* Best we can hope for, or at least DJ says so. */ - SetFilePointer ((HANDLE) _get_osfhandle (fileno (fp)), - 0, 0, FILE_BEGIN); - return -1; - } - if (written < nzeros) - { - /* Likewise. */ - SetFilePointer ((HANDLE) _get_osfhandle (fileno (fp)), - 0, 0, FILE_BEGIN); - return -1; - } - - numleft -= written; - } - FlushFileBuffers ((HANDLE) _get_osfhandle (fileno (fp))); - } - } - return fwrite (buffer, size, count, fp); -} diff --git a/winsup/mingw/mingwex/sitest.c b/winsup/mingw/mingwex/sitest.c deleted file mode 100644 index 9e06bf164..000000000 --- a/winsup/mingw/mingwex/sitest.c +++ /dev/null @@ -1,1527 +0,0 @@ -/* - sitest -- exercise features of C99 <stdint.h> and <inttypes.h> - - This source code has been placed into the PUBLIC DOMAIN by its author. - - last edit: 1999/11/05 gwyn@arl.mil - - Tries to accommodate pre-C99 versions of <inttypes.h>. - - Takes advantage of __Q8_* symbols defined by a particular - implementation of <stdint.h>, but doesn't require them. - - NOTE: This is not a thorough validation test of the facilities. -*/ - -#include <errno.h> -#include <limits.h> /* for CHAR_BIT */ -#include <stdio.h> -#include <stddef.h> /* for ptrdiff_t */ -#include <stdlib.h> -#include <string.h> - -#include <inttypes.h> /* embeds <stdint.h> */ -#include <signal.h> /* for sig_atomic_t */ -#if defined(INTMAX_MAX) /* <inttypes.h> has C99 features */ -#include <wchar.h> -#endif - -#include <inttypes.h> /* test idempotency */ - -#if 1 /* __STDC_VERSION__ >= 199901 */ -#ifndef __Q8_QT -#define __Q8_QT long long -#endif -#endif - -#ifdef PRIdMAX -#define HAVE_PRIdMAX -#ifndef __Q8_MT -#define __Q8_MT intmax_t -#endif -#else -#ifdef PRIdLEAST64 -#ifndef __Q8_MT -#define __Q8_MT int_least64_t -#endif -#define PRIdMAX PRIdLEAST64 -#else -#ifndef __Q8_MT -#define __Q8_MT long -#endif -#define PRIdMAX "ld" -#endif -#endif - -#ifdef PRIuMAX -#define HAVE_PRIuMAX -#define U__Q8_MT uintmax_t -#else -#ifdef PRIuLEAST64 -#define U__Q8_MT uint_least64_t -#define PRIuMAX PRIuLEAST64 -#else -#define U__Q8_MT unsigned long -#define PRIuMAX "lu" -#endif -#endif - -#define STR_SUB(s) #s -#define STRINGIZE(s) STR_SUB(s) /* extra level to expand argument */ - -#if defined(SCNo32) || defined(PRIo32) -static int32_t int32; -#endif -static int_least16_t intl16; -static uint_least16_t uintl16; -static uint_fast16_t uintf16; -static intmax_t intmax; -static uintmax_t uintmax; - -int -main() { - int status = 0; /* exit status to be returned */ - - /* <stdint.h> features: */ - - printf("CHAR_BIT=%u\n", (unsigned)CHAR_BIT ); - printf("sizeof(char)=%u\n", (unsigned)sizeof(char)); /* s.b. 1 */ - printf("sizeof(short)=%u\n", (unsigned)sizeof(short)); - printf("sizeof(int)=%u\n", (unsigned)sizeof(int)); - printf("sizeof(long)=%u\n", (unsigned)sizeof(long)); -#ifdef __Q8_QT - printf("sizeof(long long)=%u\n", (unsigned)sizeof(__Q8_QT)); -#endif - printf("sizeof(intmax_t)=%u\n", (unsigned)sizeof(intmax_t)); - printf("sizeof(ptrdiff_t)=%u\n", (unsigned)sizeof(ptrdiff_t)); - printf("sizeof(size_t)=%u\n", (unsigned)sizeof(size_t)); - printf("sizeof(sig_atomic_t)=%u\n", (unsigned)sizeof(sig_atomic_t)); - printf("sizeof(wchar_t)=%u\n", (unsigned)sizeof(wchar_t)); -#if defined(WINT_MAX) || __STDC_VERSION__ >= 199901 - printf("sizeof(wint_t)=%u\n", (unsigned)sizeof(wint_t)); -#else - printf("*** wint_t isn't defined ***\n"); - status = EXIT_FAILURE; -#endif -#ifdef INT8_MAX - printf("sizeof(int8_t)=%u\n", (unsigned)sizeof(int8_t)); - printf("sizeof(uint8_t)=%u\n", (unsigned)sizeof(uint8_t)); -#endif -#ifdef INT9_MAX - printf("sizeof(int9_t)=%u\n", (unsigned)sizeof(int9_t)); - printf("sizeof(uint9_t)=%u\n", (unsigned)sizeof(uint9_t)); -#endif -#ifdef INT12_MAX - printf("sizeof(int12_t)=%u\n", (unsigned)sizeof(int12_t)); - printf("sizeof(uint12_t)=%u\n", (unsigned)sizeof(uint12_t)); -#endif -#ifdef INT16_MAX - printf("sizeof(int16_t)=%u\n", (unsigned)sizeof(int16_t)); - printf("sizeof(uint16_t)=%u\n", (unsigned)sizeof(uint16_t)); -#endif -#ifdef INT18_MAX - printf("sizeof(int18_t)=%u\n", (unsigned)sizeof(int18_t)); - printf("sizeof(uint18_t)=%u\n", (unsigned)sizeof(uint18_t)); -#endif -#ifdef INT24_MAX - printf("sizeof(int24_t)=%u\n", (unsigned)sizeof(int24_t)); - printf("sizeof(uint24_t)=%u\n", (unsigned)sizeof(uint24_t)); -#endif -#ifdef INT32_MAX - printf("sizeof(int32_t)=%u\n", (unsigned)sizeof(int32_t)); - printf("sizeof(uint32_t)=%u\n", (unsigned)sizeof(uint32_t)); -#endif -#ifdef INT36_MAX - printf("sizeof(int36_t)=%u\n", (unsigned)sizeof(int36_t)); - printf("sizeof(uint36_t)=%u\n", (unsigned)sizeof(uint36_t)); -#endif -#ifdef INT40_MAX - printf("sizeof(int40_t)=%u\n", (unsigned)sizeof(int40_t)); - printf("sizeof(uint40_t)=%u\n", (unsigned)sizeof(uint40_t)); -#endif -#ifdef INT48_MAX - printf("sizeof(int48_t)=%u\n", (unsigned)sizeof(int48_t)); - printf("sizeof(uint48_t)=%u\n", (unsigned)sizeof(uint48_t)); -#endif -#ifdef INT60_MAX - printf("sizeof(int60_t)=%u\n", (unsigned)sizeof(int60_t)); - printf("sizeof(uint60_t)=%u\n", (unsigned)sizeof(uint60_t)); -#endif -#ifdef INT64_MAX - printf("sizeof(int64_t)=%u\n", (unsigned)sizeof(int64_t)); - printf("sizeof(uint64_t)=%u\n", (unsigned)sizeof(uint64_t)); -#endif -#ifdef INT72_MAX - printf("sizeof(int72_t)=%u\n", (unsigned)sizeof(int72_t)); - printf("sizeof(uint72_t)=%u\n", (unsigned)sizeof(uint72_t)); -#endif -#ifdef INT128_MAX - printf("sizeof(int128_t)=%u\n", (unsigned)sizeof(int128_t)); - printf("sizeof(uint128_t)=%u\n", (unsigned)sizeof(uint128_t)); -#endif - printf("sizeof(int_least8_t)=%u\n", (unsigned)sizeof(int_least8_t)); - printf("sizeof(uint_least8_t)=%u\n", (unsigned)sizeof(uint_least8_t)); - printf("sizeof(int_least16_t)=%u\n", (unsigned)sizeof(int_least16_t)); - printf("sizeof(uint_least16_t)=%u\n", (unsigned)sizeof(uint_least16_t)); - printf("sizeof(int_least32_t)=%u\n", (unsigned)sizeof(int_least32_t)); - printf("sizeof(uint_least32_t)=%u\n", (unsigned)sizeof(uint_least32_t)); -#ifdef INT_LEAST64_MAX - printf("sizeof(int_least64_t)=%u\n", (unsigned)sizeof(int_least64_t)); - printf("sizeof(uint_least64_t)=%u\n", (unsigned)sizeof(uint_least64_t)); -#else - printf("*** uint_least64_t isn't defined ***\n"); - status = EXIT_FAILURE; -#endif -#ifdef INT_LEAST128_MAX - printf("sizeof(int_least128_t)=%u\n", (unsigned)sizeof(int_least128_t)); - printf("sizeof(uint_least128_t)=%u\n", - (unsigned)sizeof(uint_least128_t)); -#endif - printf("sizeof(int_fast8_t)=%u\n", (unsigned)sizeof(int_fast8_t)); - printf("sizeof(uint_fast8_t)=%u\n", (unsigned)sizeof(uint_fast8_t)); - printf("sizeof(int_fast16_t)=%u\n", (unsigned)sizeof(int_fast16_t)); - printf("sizeof(uint_fast16_t)=%u\n", (unsigned)sizeof(uint_fast16_t)); - printf("sizeof(int_fast32_t)=%u\n", (unsigned)sizeof(int_fast32_t)); - printf("sizeof(uint_fast32_t)=%u\n", (unsigned)sizeof(uint_fast32_t)); -#ifdef INT_FAST64_MAX - printf("sizeof(int_fast64_t)=%u\n", (unsigned)sizeof(int_fast64_t)); - printf("sizeof(uint_fast64_t)=%u\n", (unsigned)sizeof(uint_fast64_t)); -#else - printf("*** int_fast64_t isn't defined ***\n"); - status = EXIT_FAILURE; -#endif -#ifdef INT_FAST128_MAX - printf("sizeof(int_fast128_t)=%u\n", (unsigned)sizeof(int_fast128_t)); - printf("sizeof(uint_fast128_t)=%u\n", (unsigned)sizeof(uint_fast128_t)); -#endif -#if defined(INTPTR_MAX) - printf("sizeof(intptr_t)=%u\n", (unsigned)sizeof(intptr_t)); -#if defined(UINTPTR_MAX) - printf("sizeof(uintptr_t)=%u\n", (unsigned)sizeof(uintptr_t)); -#else - printf("*** intptr_t is defined but uintptr_t isn't ***\n"); - status = EXIT_FAILURE; -#endif -#elif defined(UINTPTR_MAX) - printf("sizeof(uintptr_t)=%u\n", (unsigned)sizeof(uintptr_t)); - printf("*** uintptr_t is defined but intptr_t isn't ***\n"); - status = EXIT_FAILURE; -#else - printf("*** neither intptr_t nor uintptr_t is defined ***\n"); - status = EXIT_FAILURE; -#endif -#ifdef INTMAX_MAX - printf("sizeof(intmax_t)=%u\n", (unsigned)sizeof(intmax_t)); - printf("sizeof(uintmax_t)=%u\n", (unsigned)sizeof(uintmax_t)); -#else - printf("*** intmax_t isn't defined ***\n"); - status = EXIT_FAILURE; -#endif - -#ifdef INT8_MAX - printf("INT8_MIN=%"PRIdMAX"\n", (__Q8_MT)INT8_MIN); - printf("INT8_MAX=%"PRIdMAX"\n", (__Q8_MT)INT8_MAX); - printf("UINT8_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT8_MAX); -#endif -#ifdef INT9_MAX - printf("INT9_MIN=%"PRIdMAX"\n", (__Q8_MT)INT9_MIN); - printf("INT9_MAX=%"PRIdMAX"\n", (__Q8_MT)INT9_MAX); - printf("UINT9_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT9_MAX); -#endif -#ifdef INT12_MAX - printf("INT12_MIN=%"PRIdMAX"\n", (__Q8_MT)INT12_MIN); - printf("INT12_MAX=%"PRIdMAX"\n", (__Q8_MT)INT12_MAX); - printf("UINT12_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT12_MAX); -#endif -#ifdef INT16_MAX - printf("INT16_MIN=%"PRIdMAX"\n", (__Q8_MT)INT16_MIN); - printf("INT16_MAX=%"PRIdMAX"\n", (__Q8_MT)INT16_MAX); - printf("UINT16_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT16_MAX); -#endif -#ifdef INT18_MAX - printf("INT18_MIN=%"PRIdMAX"\n", (__Q8_MT)INT18_MIN); - printf("INT18_MAX=%"PRIdMAX"\n", (__Q8_MT)INT18_MAX); - printf("UINT18_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT18_MAX); -#endif -#ifdef INT24_MAX - printf("INT24_MIN=%"PRIdMAX"\n", (__Q8_MT)INT24_MIN); - printf("INT24_MAX=%"PRIdMAX"\n", (__Q8_MT)INT24_MAX); - printf("UINT24_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT24_MAX); -#endif -#ifdef INT32_MAX - printf("INT32_MIN=%"PRIdMAX"\n", (__Q8_MT)INT32_MIN); - printf("INT32_MAX=%"PRIdMAX"\n", (__Q8_MT)INT32_MAX); - printf("UINT32_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT32_MAX); -#endif -#ifdef INT36_MAX - printf("INT36_MIN=%"PRIdMAX"\n", (__Q8_MT)INT36_MIN); - printf("INT36_MAX=%"PRIdMAX"\n", (__Q8_MT)INT36_MAX); - printf("UINT36_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT36_MAX); -#endif -#ifdef INT40_MAX - printf("INT40_MIN=%"PRIdMAX"\n", (__Q8_MT)INT40_MIN); - printf("INT40_MAX=%"PRIdMAX"\n", (__Q8_MT)INT40_MAX); - printf("UINT40_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT40_MAX); -#endif -#ifdef INT48_MAX - printf("INT48_MIN=%"PRIdMAX"\n", (__Q8_MT)INT48_MIN); - printf("INT48_MAX=%"PRIdMAX"\n", (__Q8_MT)INT48_MAX); - printf("UINT48_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT48_MAX); -#endif -#ifdef INT60_MAX - printf("INT60_MIN=%"PRIdMAX"\n", (__Q8_MT)INT60_MIN); - printf("INT60_MAX=%"PRIdMAX"\n", (__Q8_MT)INT60_MAX); - printf("UINT60_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT60_MAX); -#endif -#ifdef INT64_MAX - printf("INT64_MIN=%"PRIdMAX"\n", (__Q8_MT)INT64_MIN); - printf("INT64_MAX=%"PRIdMAX"\n", (__Q8_MT)INT64_MAX); - printf("UINT64_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT64_MAX); -#endif -#ifdef INT72_MAX - printf("INT72_MIN=%"PRIdMAX"\n", (__Q8_MT)INT72_MIN); - printf("INT72_MAX=%"PRIdMAX"\n", (__Q8_MT)INT72_MAX); - printf("UINT72_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT72_MAX); -#endif -#ifdef INT128_MAX - printf("INT128_MIN=%"PRIdMAX"\n", (__Q8_MT)INT128_MIN); - printf("INT128_MAX=%"PRIdMAX"\n", (__Q8_MT)INT128_MAX); - printf("UINT128_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT128_MAX); -#endif - printf("INT_LEAST8_MIN=%"PRIdMAX"\n", (__Q8_MT)INT_LEAST8_MIN); - printf("INT_LEAST8_MAX=%"PRIdMAX"\n", (__Q8_MT)INT_LEAST8_MAX); - printf("UINT_LEAST8_MAX=%"PRIuMAX"\n", - (U__Q8_MT)UINT_LEAST8_MAX); - printf("INT_LEAST16_MIN=%"PRIdMAX"\n", (__Q8_MT)INT_LEAST16_MIN); - printf("INT_LEAST16_MAX=%"PRIdMAX"\n", (__Q8_MT)INT_LEAST16_MAX); - printf("UINT_LEAST16_MAX=%"PRIuMAX"\n", - (U__Q8_MT)UINT_LEAST16_MAX); - printf("INT_LEAST32_MIN=%"PRIdMAX"\n", (__Q8_MT)INT_LEAST32_MIN); - printf("INT_LEAST32_MAX=%"PRIdMAX"\n", (__Q8_MT)INT_LEAST32_MAX); - printf("UINT_LEAST32_MAX=%"PRIuMAX"\n", - (U__Q8_MT)UINT_LEAST32_MAX); -#ifdef INT_LEAST64_MAX - printf("INT_LEAST64_MIN=%"PRIdMAX"\n", (__Q8_MT)INT_LEAST64_MIN); - printf("INT_LEAST64_MAX=%"PRIdMAX"\n", (__Q8_MT)INT_LEAST64_MAX); - printf("UINT_LEAST64_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT_LEAST64_MAX); -#endif -#ifdef INT_LEAST128_MAX - printf("INT_LEAST128_MIN=%"PRIdMAX"\n", (__Q8_MT)INT_LEAST128_MIN); - printf("INT_LEAST128_MAX=%"PRIdMAX"\n", (__Q8_MT)INT_LEAST128_MAX); - printf("UINT_LEAST128_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT_LEAST128_MAX); -#endif - printf("INT_FAST8_MIN=%"PRIdMAX"\n", (__Q8_MT)INT_FAST8_MIN); - printf("INT_FAST8_MAX=%"PRIdMAX"\n", (__Q8_MT)INT_FAST8_MAX); - printf("UINT_FAST8_MAX=%"PRIuMAX"\n", - (U__Q8_MT)UINT_FAST8_MAX); - printf("INT_FAST16_MIN=%"PRIdMAX"\n", (__Q8_MT)INT_FAST16_MIN); - printf("INT_FAST16_MAX=%"PRIdMAX"\n", (__Q8_MT)INT_FAST16_MAX); - printf("UINT_FAST16_MAX=%"PRIuMAX"\n", - (U__Q8_MT)UINT_FAST16_MAX); - printf("INT_FAST32_MIN=%"PRIdMAX"\n", (__Q8_MT)INT_FAST32_MIN); - printf("INT_FAST32_MAX=%"PRIdMAX"\n", (__Q8_MT)INT_FAST32_MAX); - printf("UINT_FAST32_MAX=%"PRIuMAX"\n", - (U__Q8_MT)UINT_FAST32_MAX); -#ifdef INT_FAST64_MAX - printf("INT_FAST64_MIN=%"PRIdMAX"\n", (__Q8_MT)INT_FAST64_MIN); - printf("INT_FAST64_MAX=%"PRIdMAX"\n", (__Q8_MT)INT_FAST64_MAX); - printf("UINT_FAST64_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT_FAST64_MAX); -#endif -#ifdef INT_FAST128_MAX - printf("INT_FAST128_MIN=%"PRIdMAX"\n", (__Q8_MT)INT_FAST128_MIN); - printf("INT_FAST128_MAX=%"PRIdMAX"\n", (__Q8_MT)INT_FAST128_MAX); - printf("UINT_FAST128_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINT_FAST128_MAX); -#endif -#ifdef INTPTR_MAX - printf("INTPTR_MIN=%"PRIdMAX"\n", (__Q8_MT)INTPTR_MIN); - printf("INTPTR_MAX=%"PRIdMAX"\n", (__Q8_MT)INTPTR_MAX); -#endif -#ifdef UINTPTR_MAX - printf("UINTPTR_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINTPTR_MAX); -#endif -#ifdef INTMAX_MAX - printf("INTMAX_MIN=%"PRIdMAX"\n", (__Q8_MT)INTMAX_MIN); - printf("INTMAX_MAX=%"PRIdMAX"\n", (__Q8_MT)INTMAX_MAX); - printf("UINTMAX_MAX=%"PRIuMAX"\n", (U__Q8_MT)UINTMAX_MAX); -#endif -#ifdef PTRDIFF_MAX - printf("PTRDIFF_MIN=%"PRIdMAX"\n", (__Q8_MT)PTRDIFF_MIN); - printf("PTRDIFF_MAX=%"PRIdMAX"\n", (__Q8_MT)PTRDIFF_MAX); -#endif -#ifdef SIG_ATOMIC_MAX -#if SIG_ATOMIC_MIN < 0 - printf("SIG_ATOMIC_MIN=%"PRIdMAX"\n", (__Q8_MT)SIG_ATOMIC_MIN); - printf("SIG_ATOMIC_MAX=%"PRIdMAX"\n", (__Q8_MT)SIG_ATOMIC_MAX); -#else - printf("SIG_ATOMIC_MIN=%"PRIuMAX"\n", (U__Q8_MT)SIG_ATOMIC_MIN); - printf("SIG_ATOMIC_MAX=%"PRIuMAX"\n", (U__Q8_MT)SIG_ATOMIC_MAX); -#endif -#endif -#ifdef SIZE_MAX - printf("SIZE_MAX=%"PRIuMAX"\n", (U__Q8_MT)SIZE_MAX); -#endif - -#ifdef WCHAR_MAX -#if WCHAR_MIN < 0 - printf("WCHAR_MIN=%"PRIdMAX"\n", (__Q8_MT)WCHAR_MIN); - printf("WCHAR_MAX=%"PRIdMAX"\n", (__Q8_MT)WCHAR_MAX); -#else - printf("WCHAR_MIN=%"PRIuMAX"\n", (U__Q8_MT)WCHAR_MIN); - printf("WCHAR_MAX=%"PRIuMAX"\n", (U__Q8_MT)WCHAR_MAX); -#endif -#endif -#ifdef WINT_MAX -#if WINT_MIN < 0 - printf("WINT_MIN=%"PRIdMAX"\n", (__Q8_MT)WINT_MIN); - printf("WINT_MAX=%"PRIdMAX"\n", (__Q8_MT)WINT_MAX); -#else - printf("WINT_MIN=%"PRIuMAX"\n", (U__Q8_MT)WINT_MIN); - printf("WINT_MAX=%"PRIuMAX"\n", (U__Q8_MT)WINT_MAX); -#endif -#endif - - /* - 7.18.4 Macros for integer constants - */ - - /* INTn_C for n=8 and 16 were at one point unimplementable - on most platforms, so they're treated as "optional": */ -#ifdef INT8_C - if ( INT8_C(-123) != -123 ) - printf("*** INT8_C(-123) produced %"PRIdMAX" ***\n", - (__Q8_MT)INT8_C(-123) - ); - if ( UINT8_C(123) != 123 ) - printf("*** UINT8_C(123) produced %"PRIuMAX" ***\n", - (U__Q8_MT)UINT8_C(123) - ); -#endif -#ifdef INT16_C - if ( INT16_C(-12345) != -12345 ) - printf("*** INT16_C(-12345) produced %"PRIdMAX" ***\n", - (__Q8_MT)INT16_C(-12345) - ); - if ( UINT16_C(12345) != 12345 ) - printf("*** UINT16_C(12345) produced %"PRIuMAX" ***\n", - (U__Q8_MT)UINT16_C(12345) - ); -#endif - if ( INT32_C(-123456789) != -123456789 ) - printf("*** INT32_C(-123456789) produced %"PRIdMAX" ***\n", - (__Q8_MT)INT32_C(-123456789) - ); - if ( UINT32_C(123456789) != 123456789 ) - printf("*** UINT32_C(123456789) produced %"PRIuMAX" ***\n", - (U__Q8_MT)UINT32_C(123456789) - ); -#ifdef INT_LEAST64_MAX - if ( INT64_C(-1234567890123456789) != -1234567890123456789 ) - printf("*** INT64_C(-1234567890123456789) produced %"PRIdMAX - " ***\n", - (__Q8_MT)INT64_C(-1234567890123456789) - ); - if ( UINT64_C(1234567890123456789) != 1234567890123456789 ) - printf("*** UINT64_C(1234567890123456789) produced %"PRIuMAX - " ***\n", - (U__Q8_MT)UINT64_C(1234567890123456789) - ); -#endif -#ifdef INTMAX_MAX - if ( INTMAX_C(-1234567890123456789) != -1234567890123456789 ) - printf("*** INTMAX_C(-1234567890123456789) produced %"PRIdMAX - " ***\n", - (__Q8_MT)INTMAX_C(-1234567890123456789) - ); - if ( UINTMAX_C(1234567890123456789) != 1234567890123456789 ) - printf("*** UINTMAX_C(1234567890123456789) produced %"PRIuMAX - " ***\n", - (U__Q8_MT)UINTMAX_C(1234567890123456789) - ); -#endif - - /* <inttypes.h> features: */ - -#if __STDC_VERSION__ >= 199901 - printf("sizeof(imaxdiv_t)=%u\n", (unsigned)sizeof(imaxdiv_t)); -#endif - - /* - 7.8.1 Macros for format specifiers - */ - - { - /* scanf these strings */ - static const char in_dn[] = "Z119bZ"; - static const char in_dmo[] = "Z-0119bZ"; - static const char in_dspx[] = "Z \t\n +0X119bZ"; - static const char in_dsmx[] = "Z \t\n -0x119bZ"; - static const char in_dsn[] = "Z \t\n 119bZ"; - static const char in_dp[] = "Z+119bZ"; - static const char in_dpx[] = "Z+0X119bz"; - - /* sprintf into this */ - static char buffer[1024]; - -#define SCAN(buf,fs,var,exp) if ( sscanf(buf, "Z%" fs, &var) != 1 ) \ - { \ - printf("*** " #fs "=" STR_SUB(fs) \ - " failed ***\n" \ - ); \ - status = EXIT_FAILURE; \ - } \ - else if ( var != (exp) ) \ - { \ - printf("*** " #fs "=" STR_SUB(fs) \ - " should be: " STR_SUB(exp) \ - ", was: %" fs " ***\n", var \ - ); \ - status = EXIT_FAILURE; \ - } \ - else - -#define PRINT(fs,var,exp) if ( sprintf(buffer, "%" fs, var ) <= 0 ) \ - { \ - printf("*** " #fs "=" STR_SUB(fs) \ - " failed ***\n" \ - ); \ - status = EXIT_FAILURE; \ - } \ - else if ( strcmp(buffer, STR_SUB(exp)) != 0 ) \ - { \ - printf("*** " #fs "=" STR_SUB(fs) \ - " should be: " STR_SUB(exp) \ - ", was: %s ***\n", buffer \ - ); \ - status = EXIT_FAILURE; \ - } \ - else - -#ifdef SCNo32 - SCAN(in_dn, SCNo32, int32, 9); -#endif -#ifdef PRIo32 - PRINT(PRIo32, int32, 11); -#endif - SCAN(in_dmo, SCNiLEAST16, intl16, -9); - SCAN(in_dspx, SCNdLEAST16, intl16, 0); - SCAN(in_dsmx, SCNiLEAST16, intl16, -4507); - PRINT(PRIdLEAST16, intl16, -4507); - PRINT(PRIiLEAST16, intl16, -4507); - SCAN(in_dsn, SCNxLEAST16, uintl16, 4507); - PRINT(PRIoLEAST16, uintl16, 10633); - PRINT(PRIuLEAST16, uintl16, 4507); - PRINT(PRIxLEAST16, uintl16, 119b); - PRINT(PRIXLEAST16, uintl16, 119B); - SCAN(in_dp, SCNxFAST16, uintf16, 4507); - PRINT(PRIxFAST16, uintf16, 119b); -#ifdef SCNdMAX - SCAN(in_dp, SCNdMAX, intmax, 119); -#endif -#ifdef PRIiMAX - PRINT(PRIiMAX, intmax, 119); -#endif -#ifdef SCNoMAX - SCAN(in_dpx, SCNoMAX, uintmax, 0); -#endif -#ifdef PRIxMAX - PRINT(PRIxMAX, uintmax, 0); -#endif - /* Obviously there should be a much larger battery of such tests. */ - } - -#if defined(INTMAX_MAX) /* <inttypes.h> has C99 features */ - /* - 7.8.2 Functions for greatest-width integer types - */ - - { - static struct - { - intmax_t input; - intmax_t expect; - } abs_data[] = - { -#ifdef INT8_MAX - {INT8_MAX, INT8_MAX}, - {-INT8_MAX, INT8_MAX}, - {UINT8_MAX, UINT8_MAX}, -#endif - -#ifdef INT16_MAX - { INT16_MAX, INT16_MAX}, - { -INT16_MAX, INT16_MAX}, - { UINT16_MAX, UINT16_MAX}, -#endif -#ifdef INT32_MAX - { INT32_MAX, INT32_MAX}, - { -INT32_MAX, INT32_MAX}, -#ifdef INT_LEAST64_MAX - { UINT32_MAX, UINT32_MAX}, -#endif -#endif -#ifdef INT64_MAX - { INT64_MAX, INT64_MAX}, - { -INT64_MAX, INT64_MAX}, -#endif - { INT_LEAST8_MAX, INT_LEAST8_MAX}, - { -INT_LEAST8_MAX, INT_LEAST8_MAX}, - { UINT_LEAST8_MAX, UINT_LEAST8_MAX}, - { INT_LEAST16_MAX, INT_LEAST16_MAX}, - { -INT_LEAST16_MAX, INT_LEAST16_MAX}, - { UINT_LEAST16_MAX, UINT_LEAST16_MAX}, - { INT_LEAST32_MAX, INT_LEAST32_MAX}, - { -INT_LEAST32_MAX, INT_LEAST32_MAX}, -#ifdef INT_LEAST64_MAX - { UINT_LEAST32_MAX, UINT_LEAST32_MAX}, - { INT_LEAST64_MAX, INT_LEAST64_MAX}, - { -INT_LEAST64_MAX, INT_LEAST64_MAX}, -#endif - { INT_FAST8_MAX, INT_FAST8_MAX}, - { -INT_FAST8_MAX, INT_FAST8_MAX}, - { UINT_FAST8_MAX, UINT_FAST8_MAX}, - { INT_FAST16_MAX, INT_FAST16_MAX}, - { -INT_FAST16_MAX, INT_FAST16_MAX}, - { UINT_FAST16_MAX, UINT_FAST16_MAX}, - { INT_FAST32_MAX, INT_FAST32_MAX}, - { -INT_FAST32_MAX, INT_FAST32_MAX}, -#ifdef INT_FAST64_MAX - { UINT_FAST32_MAX, UINT_FAST32_MAX}, - { INT_FAST64_MAX, INT_FAST64_MAX}, - { -INT_FAST64_MAX, INT_FAST64_MAX}, -#endif -#ifdef INTPTR_MAX - { INTPTR_MAX, INTPTR_MAX}, - { -INTPTR_MAX, INTPTR_MAX}, -#endif -#ifdef UINTPTR_MAX - { UINTPTR_MAX, UINTPTR_MAX}, -#endif - { INTMAX_MAX, INTMAX_MAX}, -#ifdef PTRDIFF_MAX - { PTRDIFF_MAX, PTRDIFF_MAX}, -#endif -#ifdef SIG_ATOMIC_MAX - { SIG_ATOMIC_MAX, SIG_ATOMIC_MAX}, -#if SIG_ATOMIC_MIN < 0 - { -SIG_ATOMIC_MAX, SIG_ATOMIC_MAX}, -#endif -#endif -#ifdef SIZE_MAX - { SIZE_MAX, SIZE_MAX}, -#endif -#ifdef WCHAR_MAX - { WCHAR_MAX, WCHAR_MAX}, -#if WCHAR_MIN < 0 - { -WCHAR_MAX, WCHAR_MAX}, -#endif -#endif -#ifdef WINT_MAX - { WINT_MAX, WINT_MAX}, -#if WINT_MIN < 0 - { -WINT_MAX, WINT_MAX}, -#endif -#endif - { 127, 127}, - { -127, 127}, - { 128, 128}, - { -127-1, 128}, - { 255, 255}, - { -256+1, 255}, - { 256, 256}, - { -256, 256}, - { 32767, 32767}, - { -32767, 32767}, - { 32768, 32768}, - { -32767-1, 32768}, - { 65535, 65535}, - { -65536+1, 65535}, - { 65536, 65536}, - { -65536, 65536}, - { 2147483647, 2147483647}, - { -2147483647, 2147483647}, - { 2147483648LL, 2147483648LL}, - { -2147483647LL-1, 2147483648LL}, -#ifdef INT_LEAST64_MAX - { 4294967295LL, 4294967295LL}, - { -4294967296LL+1, 4294967295LL}, - { 4294967296LL, 4294967296LL}, - { -4294967296LL, 4294967296LL}, - { 9223372036854775807LL, 9223372036854775807LL}, - { -9223372036854775807LL, 9223372036854775807LL}, - { 1234567890123456789LL, 1234567890123456789LL}, - { -1234567890123456789LL, 1234567890123456789LL}, -#endif - { 1, 1}, - { -1, 1}, - { 2, 2}, - { -2, 2}, - { 10, 10}, - { -10, 10}, - { 16, 16}, - { -16, 16}, - /* Other test cases can be added here. */ - {0, 0} /* terminates the list */ - }, *adp=abs_data; - int count=0; - do{ - intmax = imaxabs(adp->input); - count++; - if (intmax != adp->expect ) - { - - printf("*** imaxabs(%"PRIdMAX") failed; should be: %" - PRIdMAX", was: %"PRIdMAX" ***\n", - adp->input, adp->expect, intmax - ); - status = EXIT_FAILURE; - } - } - while ( adp++->input != 0 ); - } - - { - imaxdiv_t result; - static struct - { - intmax_t numer; - intmax_t denom; - intmax_t exp_quot; - intmax_t exp_rem; - } div_data[] = - { - { 0, 1, 0, 0}, - { 0, -1, 0, 0}, - { 0, 2, 0, 0}, - { 0, -2, 0, 0}, - { 0, 5, 0, 0}, - { 0, -5, 0, 0}, - { 1, 1, 1, 0}, - { 1, -1, -1, 0}, - { 1, 2, 0, 1}, - { 1, -2, 0, 1}, - { 1, 5, 0, 1}, - { 1, -5, 0, 1}, - { -1, 1, -1, 0}, - { -1, -1, 1, 0}, - { -1, 2, 0, -1}, - { -1, -2, 0, -1}, - { -1, 5, 0, -1}, - { -1, -5, 0, -1}, - { 2, 1, 2, 0}, - { 2, -1, -2, 0}, - { 2, 2, 1, 0}, - { 2, -2, -1, 0}, - { 2, 5, 0, 2}, - { 2, -5, 0, 2}, - { -2, 1, -2, 0}, - { -2, -1, 2, 0}, - { -2, 2, -1, 0}, - { -2, -2, 1, 0}, - { -2, 5, 0, -2}, - { -2, -5, 0, -2}, - { 17, 5, 3, 2}, - { -17, -5, 3, -2}, - { 17, -5, -3, 2}, - { -17, 5, -3, -2}, - { 2147483647, 1, 2147483647, 0}, - { -2147483647LL, 1, -2147483647LL, 0}, - { 2147483648LL, 1LL, 2147483648LL, 0LL}, - { -2147483647-1LL, 1LL, -2147483647-1LL, 0LL}, - { 2147483647LL, 2LL, 1073741823LL, 1LL}, - { -2147483647LL, 2LL, -1073741823LL, -1LL}, - { 2147483648LL, 2LL, 1073741824LL, 0LL}, - { -2147483647-1LL, 2LL, -1073741824LL, 0LL}, -#ifdef INT_LEAST64_MAX /* else might support only 32 bits */ - { 4294967295LL, 1LL, 4294967295LL, 0LL}, - { -4294967296LL+1LL, 1LL, -4294967296LL+1, 0}, - { 4294967296LL, 1, 4294967296LL, 0}, - { -4294967296LL, 1LL, -4294967296LL, 0LL}, - { 4294967295LL, -1LL, -4294967296+1LL, 0LL}, - { -4294967296+1LL, -1LL, 4294967295LL, 0LL}, - { 4294967296LL, -1LL, -4294967296LL, 0LL}, - { -4294967296LL, -1LL, 4294967296LL, 0LL}, - { 4294967295LL, 2LL, 2147483647LL, 1LL}, - { -4294967296+1LL, 2LL, -2147483647LL, -1LL}, - { 4294967296LL, 2LL, 2147483648LL, 0LL}, - { -4294967296LL, 2LL, -2147483647-1LL, 0LL}, - { 4294967295LL, 2147483647LL, 2LL, 1LL}, - { -4294967296+1LL, 2147483647LL, -2LL, -1LL}, - { 4294967296LL, 2147483647LL, 2LL, 2LL}, - { -4294967296LL, 2147483647LL, -2LL, -2LL}, - { 4294967295LL, -2147483647LL, -2LL, 1LL}, - { -4294967296+1LL, -2147483647LL, 2LL, -1LL}, - { 4294967296LL, -2147483647LL, -2LL, 2LL}, - { -4294967296LL, -2147483647LL, 2LL, -2LL}, - { 4294967295LL, 2147483648LL, 1LL, 2147483647LL}, - { -4294967296+1LL, 2147483648LL, -1LL, -2147483647LL}, - { 4294967296LL, 2147483648LL, 2LL, 0LL}, - { -4294967296LL, 2147483648LL, -2LL, 0LL}, - { 4294967295LL, -2147483647-1LL, -1LL, 2147483647LL}, - { -4294967296+1LL, -2147483647-1LL, 1LL, -2147483647LL}, - { 4294967296LL, -2147483647-1LL, -2LL, 0LL}, - { -4294967296LL, -2147483647-1LL, 2LL, 0LL}, - { 9223372036854775807LL, 1LL, 9223372036854775807LL, 0LL}, - { -9223372036854775807LL, 1LL, -9223372036854775807LL, 0LL}, - { 9223372036854775807LL, 2LL, 4611686018427387903LL, 1LL}, - { -9223372036854775807LL, 2LL, -4611686018427387903LL, -1LL}, -#endif - /* There should be a much larger battery of such tests. */ - { 0, 0, 0, 0} /* 0 denom terminates the list */ - }, *ddp; - - for ( ddp = div_data; ddp->denom != 0; ++ddp ) - if ( (result = imaxdiv(ddp->numer, ddp->denom)).quot - != ddp->exp_quot || result.rem != ddp->exp_rem - ) { - printf("*** imaxdiv(%"PRIdMAX",%"PRIdMAX - ") failed; should be: (%"PRIdMAX",%"PRIdMAX - "), was: (%"PRIdMAX",%"PRIdMAX") ***\n", - ddp->numer, ddp->denom, ddp->exp_quot, - ddp->exp_rem, result.quot, result.rem - ); - status = EXIT_FAILURE; - } - } - - { - char *endptr; - wchar_t *wendptr; - static char saved[64]; /* holds copy of input string */ - static wchar_t wnptr[64]; /* holds wide copy of test string */ - static int warned; /* "warned for null endptr" flag */ - register int i; - static struct - { - char * nptr; - int base; - intmax_t exp_val; - int exp_len; - } str_data[] = - { - { "", 0, 0, 0}, - { "", 2, 0, 0}, - { "", 8, 0, 0}, - { "", 9, 0, 0}, - { "", 10, 0, 0}, - { "", 16, 0, 0}, - { "", 36, 0, 0}, - { "0", 0, 0, 1}, - { "0", 2, 0, 1}, - { "0", 8, 0, 1}, - { "0", 9, 0, 1}, - { "0", 10, 0, 1}, - { "0", 16, 0, 1}, - { "0", 36, 0, 1}, - { "+0", 0, 0, 2}, - { "+0", 2, 0, 2}, - { "+0", 8, 0, 2}, - { "+0", 9, 0, 2}, - { "+0", 10, 0, 2}, - { "+0", 16, 0, 2}, - { "+0", 36, 0, 2}, - { "-0", 0, 0, 2}, - { "-0", 2, 0, 2}, - { "-0", 8, 0, 2}, - { "-0", 9, 0, 2}, - { "-0", 10, 0, 2}, - { "-0", 16, 0, 2}, - { "-0", 36, 0, 2}, - { "Inf", 0, 0, 0}, - { "Inf", 2, 0, 0}, - { "Inf", 8, 0, 0}, - { "Inf", 9, 0, 0}, - { "Inf", 10, 0, 0}, - { "Inf", 16, 0, 0}, - { "Inf", 36, 24171, 3}, - { "+Inf", 0, 0, 0}, - { "+Inf", 2, 0, 0}, - { "+Inf", 8, 0, 0}, - { "+Inf", 9, 0, 0}, - { "+Inf", 10, 0, 0}, - { "+Inf", 16, 0, 0}, - { "+Inf", 36, 24171, 4}, - { "-Inf", 0, 0, 0}, - { "-Inf", 2, 0, 0}, - { "-Inf", 8, 0, 0}, - { "-Inf", 9, 0, 0}, - { "-Inf", 10, 0, 0}, - { "-Inf", 16, 0, 0}, - { "-Inf", 36, -24171, 4}, - { "inf", 0, 0, 0}, - { "inf", 2, 0, 0}, - { "inf", 8, 0, 0}, - { "inf", 9, 0, 0}, - { "inf", 10, 0, 0}, - { "inf", 16, 0, 0}, - { "inf", 36, 24171, 3}, - { "+inf", 0, 0, 0}, - { "+inf", 2, 0, 0}, - { "+inf", 8, 0, 0}, - { "+inf", 9, 0, 0}, - { "+inf", 10, 0, 0}, - { "+inf", 16, 0, 0}, - { "+inf", 36, 24171, 4}, - { "-inf", 0, 0, 0}, - { "-inf", 2, 0, 0}, - { "-inf", 8, 0, 0}, - { "-inf", 9, 0, 0}, - { "-inf", 10, 0, 0}, - { "-inf", 16, 0, 0}, - { "-inf", 36, -24171, 4}, - { "119b8Z", 0, 119, 3}, - { "119bZ", 0, 119, 3}, - { "-0119bZ", 0, -9, 4}, - { " \t\n 0X119bZ", 0, 4507, 10}, - { " \t\n +0X119bZ", 0, 4507, 11}, - { " \t\n -0x119bZ", 0, -4507, 11}, - { " \t\n 119bZ", 0, 119, 7}, - { "+119bZ", 0, 119, 4}, - { "+0X119bz", 0, 4507, 7}, - { "119b8Z", 2, 3, 2}, - { "119bZ", 2, 3, 2}, - { "-0119bZ", 2, -3, 4}, - { " \t\n 0X119bZ", 2, 0, 5}, - { " \t\n +0X119bZ", 2, 0, 6}, - { " \t\n -0x119bZ", 2, 0, 6}, - { " \t\n 119bZ", 2, 3, 6}, - { "+119bZ", 2, 3, 3}, - { "+0X119bz", 2, 0, 2}, - { "119b8Z", 8, 9, 2}, - { "119bZ", 8, 9, 2}, - { "-0119bZ", 8, -9, 4}, - { " \t\n 0X119bZ", 8, 0, 5}, - { " \t\n +0X119bZ", 8, 0, 6}, - { " \t\n -0x119bZ", 8, 0, 6}, - { " \t\n 119bZ", 8, 9, 6}, - { "+119bZ", 8, 9, 3}, - { "+0X119bz", 8, 0, 2}, - { "119b8Z", 9, 10, 2}, - { "119bZ", 9, 10, 2}, - { "-0119bZ", 9, -10, 4}, - { " \t\n 0X119bZ", 9, 0, 5}, - { " \t\n +0X119bZ", 9, 0, 6}, - { " \t\n -0x119bZ", 9, 0, 6}, - { " \t\n 119bZ", 9, 10, 6}, - { "+119bZ", 9, 10, 3}, - { "+0X119bz", 9, 0, 2}, - { "119b8Z", 10, 119, 3}, - { "119bZ", 10, 119, 3}, - { "-0119bZ", 10, -119, 5}, - { " \t\n 0X119bZ", 10, 0, 5}, - { " \t\n +0X119bZ", 10, 0, 6}, - { " \t\n -0x119bZ", 10, 0, 6}, - { " \t\n 119bZ", 10, 119, 7}, - { "+119bZ", 10, 119, 4}, - { "+0X119bz", 10, 0, 2}, - { "119b8Z", 16, 72120, 5}, - { "119bZ", 16, 4507, 4}, - { "-0119bZ", 16, -4507, 6}, - { " \t\n 0X119bZ", 16, 4507, 10}, - { " \t\n +0X119bZ", 16, 4507, 11}, - { " \t\n -0x119bZ", 16, -4507, 11}, - { " \t\n 119bZ", 16, 4507,8}, - { "+119bZ", 16, 4507, 5}, - { "+0X119bz", 16, 4507, 7}, - { "119b8Z", 36, 62580275, 6}, - { "119bZ", 36, 1738367, 5}, - { "-0119bZ", 36, -1738367, 7}, - { " \t\n 0X119bZ", 36, 1997122175, 11}, - { " \t\n +0X119bZ", 36, 1997122175, 12}, - { " \t\n -0x119bZ", 36, -1997122175, 12}, - { " \t\n 119bZ", 36, 1738367, 9}, - { "+119bZ", 36, 1738367, 6}, - { "+0X119bz", 36, 1997122175, 8}, - /* There should be a much larger battery of such tests. */ - { "127", 0, 127, 3}, - { "-127", 0, -127, 4}, - { "128", 0, 128, 3}, - { "-128", 0, -127-1, 4}, - { "255", 0, 255, 3}, - { "-255", 0, -255, 4}, - { "256", 0, 256, 3}, - { "-256", 0, -255-1, 4}, - { "32767", 0, 32767, 5}, - { "-32767", 0, -32767, 6}, - { "32768", 0, 32768, 5}, - { "-32768", 0, -32767-1, 6}, - { "65535", 0, 65535, 5}, - { "-65535", 0, -65536+1, 6}, - { "65536", 0, 65536, 5}, - { "-65536", 0, -65536, 6}, - { "2147483647", 0, 2147483647, 10}, - { "-2147483647", 0, -2147483647, 11}, - { "2147483648", 0, 2147483648LL, 10}, - { "-2147483648", 0, -2147483647LL-1, 11}, - { "4294967295", 0, 4294967295LL, 10}, - { "-4294967295", 0, -4294967296LL+1, 11}, - { "4294967296", 0, 4294967296LL, 10}, - { "-4294967296", 0, -4294967296L, 11}, - { "9223372036854775807", 0, 9223372036854775807LL, 19}, - { "-9223372036854775807", 0, -9223372036854775807LL, 20}, - { "1234567890123456789", 0, 1234567890123456789LL, 19}, - { "-1234567890123456789", 0, -1234567890123456789LL, 20}, - { "1", 0, 1, 1}, - { "-1", 0, -1, 2}, - { "2", 0, 2, 1}, - { "-2", 0, -2, 2}, - { "10", 0, 10, 2}, - { "-10", 0, -10, 3}, - { "16", 0, 16, 2}, - { "-16", 0, -16, 3}, - /* Other test cases can be added here. */ - { NULL, 0, 0, 0 } /* terminates the list */ - }, *sdp; - - for ( sdp = str_data; sdp->nptr != NULL ; ++sdp ) - { - /* - 7.8.2.3 The strtoimax and strtoumax functions - */ - - strcpy(saved, sdp->nptr); - - errno = 0; /* shouldn't be changed */ - - if ( (intmax = strtoimax(sdp->nptr, &endptr, sdp->base)) - != sdp->exp_val - ) { - int save = errno; - - printf("*** strtoimax(%s,,%d) failed; should be: %" - PRIdMAX", was: %"PRIdMAX" ***\n", sdp->nptr, - sdp->base, sdp->exp_val, intmax - ); - status = EXIT_FAILURE; - errno = save; - } - else if ( endptr != sdp->nptr + sdp->exp_len ) - { - int save = errno; - - printf("*** strtoimax(%s,,%d) returned wrong endptr" - " ***\n", sdp->nptr, sdp->base - ); - status = EXIT_FAILURE; - errno = save; - } - - if ( errno != 0 ) - { - printf("*** strtoimax modified errno ***\n"); - status = EXIT_FAILURE; - } - - if ( strcmp(sdp->nptr, saved) != 0 ) - { - printf("*** strtoimax modified its input ***\n"); - status = EXIT_FAILURE; - strcpy(saved, sdp->nptr); - } - - if ( sdp->exp_val >= 0 ) /* else some sign extension */ - { - errno = 0; /* shouldn't be changed */ - - if ( (uintmax = strtoumax(sdp->nptr, &endptr, sdp->base - ) - ) != sdp->exp_val - ) { - int save = errno; - - printf("*** strtoumax(%s,,%d) failed; " - "should be: %"PRIuMAX", was: %"PRIuMAX - " ***\n", sdp->nptr, sdp->base, - sdp->exp_val, uintmax - ); - status = EXIT_FAILURE; - errno = save; - } - else if ( endptr != sdp->nptr + sdp->exp_len ) - { - int save = errno; - - printf("*** strtoumax(%s,,%d) returned wrong " - "endptr ***\n", sdp->nptr, sdp->base - ); - status = EXIT_FAILURE; - errno = save; - } - - if ( errno != 0 ) - { - printf("*** strtoumax modified errno ***\n"); - status = EXIT_FAILURE; - } - - if ( strcmp(sdp->nptr, saved) != 0 ) - { - printf("*** strtoumax" - " modified its input ***\n" - ); - status = EXIT_FAILURE; - strcpy(saved, sdp->nptr); - } - } - - /* tests for null endptr */ - -#define WARN() if (!warned) warned = 1, printf("*** Using null endptr: ***\n") - - warned = 0; - errno = 0; /* shouldn't be changed */ - - if ( (intmax = strtoimax(sdp->nptr, (char **)NULL, sdp->base)) - != sdp->exp_val - ) { - int save = errno; - - WARN(); - printf("*** strtoimax(%s,NULL,%d) failed; " - "should be: %"PRIdMAX", was: %"PRIdMAX" ***\n", - sdp->nptr, sdp->base, sdp->exp_val, intmax - ); - status = EXIT_FAILURE; - errno = save; - } - - if ( errno != 0 ) - { - WARN(); - printf("*** strtoimax modified errno ***\n"); - status = EXIT_FAILURE; - } - - if ( strcmp(sdp->nptr, saved) != 0 ) - { - WARN(); - printf("*** strtoimax modified its input ***\n"); - status = EXIT_FAILURE; - strcpy(saved, sdp->nptr); - } - - if ( sdp->exp_val >= 0 ) /* else some sign extension */ - { - errno = 0; /* shouldn't be changed */ - - if ( (uintmax = strtoumax(sdp->nptr, (char **)NULL, - sdp->base - ) - ) != sdp->exp_val - ) { - int save = errno; - - WARN(); - printf("*** strtoumax(%s,NULL,%d) failed; " - "should be: %"PRIuMAX", was: %"PRIuMAX - " ***\n", sdp->nptr, sdp->base, - sdp->exp_val, uintmax - ); - status = EXIT_FAILURE; - errno = save; - } - - if ( errno != 0 ) - { - WARN(); - printf("*** strtoumax modified errno ***\n"); - status = EXIT_FAILURE; - } - - if ( strcmp(sdp->nptr, saved) != 0 ) - { - WARN(); - printf("*** strtoumax" - " modified its input ***\n" - ); - status = EXIT_FAILURE; - strcpy(saved, sdp->nptr); - } - } - - /* - 7.8.2.4 The wcstoimax and wcstoumax functions - */ - - for ( i = 0; i < 64; ++i ) - if ( (wnptr[i] = sdp->nptr[i]) == '\0' ) - break; - - errno = 0; /* shouldn't be changed */ - - if ( (intmax = wcstoimax(wnptr, &wendptr, sdp->base)) - != sdp->exp_val - ) { - int save = errno; - - printf("*** wcstoimax(%s,,%d) failed; should be: %" - PRIdMAX", was: %"PRIdMAX" ***\n", sdp->nptr, - sdp->base, sdp->exp_val, intmax - ); - status = EXIT_FAILURE; - errno = save; - } - else if ( wendptr != wnptr + sdp->exp_len ) - { - int save = errno; - - printf("*** wcstoimax(%s,,%d) returned wrong endptr" - " ***\n", sdp->nptr, sdp->base - ); - status = EXIT_FAILURE; - errno = save; - } - - if ( errno != 0 ) - { - printf("*** wcstoimax modified errno ***\n"); - status = EXIT_FAILURE; - } - - for ( i = 0; i < 64; ++i ) - if ( wnptr[i] != sdp->nptr[i] ) - { - printf("*** wcstoimax modified its input ***\n" - ); - status = EXIT_FAILURE; - - for ( ; i < 64; ++i ) - if ( (wnptr[i] = sdp->nptr[i]) == '\0' ) - break; - - break; - } - else if ( wnptr[i] == '\0' ) - break; - - if ( sdp->exp_val >= 0 ) /* else some sign extension */ - { - errno = 0; /* shouldn't be changed */ - - if ( (uintmax = wcstoumax(wnptr, &wendptr, sdp->base) - ) != sdp->exp_val - ) { - int save = errno; - - printf("*** wcstoumax(%s,,%d) failed; " - "should be: %"PRIuMAX", was: %"PRIuMAX - " ***\n", sdp->nptr, sdp->base, - sdp->exp_val, uintmax - ); - status = EXIT_FAILURE; - errno = save; - } - else if ( wendptr != wnptr + sdp->exp_len ) - { - int save = errno; - - printf("*** wcstoumax(%s,,%d) returned wrong " - "endptr ***\n", sdp->nptr, sdp->base - ); - status = EXIT_FAILURE; - errno = save; - } - - if ( errno != 0 ) - { - printf("*** wcstoumax modified errno ***\n"); - status = EXIT_FAILURE; - } - - for ( i = 0; i < 64; ++i ) - if ( wnptr[i] != sdp->nptr[i] ) - { - printf("*** wcstoumax" - " modified its input ***\n" - ); - status = EXIT_FAILURE; - - for ( ; i < 64; ++i ) - if ( (wnptr[i] = sdp->nptr[i]) - == '\0' - ) - break; - - break; - } - else if ( wnptr[i] == '\0' ) - break; - } - - /* tests for null endptr */ - - warned = 0; - errno = 0; /* shouldn't be changed */ - - if ( (intmax = wcstoimax(wnptr, (wchar_t **)NULL, sdp->base)) - != sdp->exp_val - ) { - int save = errno; - - WARN(); - printf("*** wcstoimax(%s,NULL,%d) failed; should be: %" - PRIdMAX", was: %"PRIdMAX" ***\n", sdp->nptr, - sdp->base, sdp->exp_val, intmax - ); - status = EXIT_FAILURE; - errno = save; - } - - if ( errno != 0 ) - { - WARN(); - printf("*** wcstoimax modified errno ***\n"); - status = EXIT_FAILURE; - } - - for ( i = 0; i < 64; ++i ) - if ( wnptr[i] != sdp->nptr[i] ) - { - WARN(); - printf("*** wcstoimax modified its input ***\n" - ); - status = EXIT_FAILURE; - - for ( ; i < 64; ++i ) - if ( (wnptr[i] = sdp->nptr[i]) - == '\0' - ) - break; - - break; - } - else if ( wnptr[i] == '\0' ) - break; - - if ( sdp->exp_val >= 0 ) /* else some sign extension */ - { - errno = 0; /* shouldn't be changed */ - - if ( (uintmax = wcstoumax(wnptr, (wchar_t **)NULL, - sdp->base - ) - ) != sdp->exp_val - ) { - int save = errno; - - WARN(); - printf("*** wcstoumax(%s,NULL,%d) failed; " - "should be: %"PRIuMAX", was: %"PRIuMAX - " ***\n", sdp->nptr, sdp->base, - sdp->exp_val, uintmax - ); - status = EXIT_FAILURE; - errno = save; - } - - if ( errno != 0 ) - { - WARN(); - printf("*** wcstoumax modified errno ***\n"); - status = EXIT_FAILURE; - } - - for ( i = 0; i < 64; ++i ) - if ( wnptr[i] != sdp->nptr[i] ) - { - WARN(); - printf("*** wcstoumax" - " modified its input ***\n" - ); - status = EXIT_FAILURE; - - for ( ; i < 64; ++i ) - if ( (wnptr[i] = sdp->nptr[i]) - == '\0' - ) - break; - - break; - } - else if ( wnptr[i] == '\0' ) - break; - } - } - - /* - 7.8.2.3 The strtoimax and strtoumax functions (continued) - */ - - if ( (intmax = strtoimax("1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890", - &endptr, 0 - ) - ) != INTMAX_MAX || errno != ERANGE - ) { - printf("*** strtoimax failed overflow test ***\n"); - status = EXIT_FAILURE; - } - - if ( (intmax = strtoimax("+1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890", - &endptr, 0 - ) - ) != INTMAX_MAX || errno != ERANGE - ) { - printf("*** strtoimax failed +overflow test ***\n"); - status = EXIT_FAILURE; - } - - if ( (intmax = strtoimax("-1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890", - &endptr, 0 - ) - ) != INTMAX_MIN || errno != ERANGE - ) { - printf("*** strtoimax failed -overflow test ***\n"); - status = EXIT_FAILURE; - } - - if ( (uintmax = strtoumax("1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890", - &endptr, 0 - ) - ) != UINTMAX_MAX || errno != ERANGE - ) { - printf("*** strtoumax failed overflow test ***\n"); - status = EXIT_FAILURE; - } - - if ( (uintmax = strtoumax("+1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890", - &endptr, 0 - ) - ) != UINTMAX_MAX || errno != ERANGE - ) { - printf("*** strtoumax failed +overflow test ***\n"); - status = EXIT_FAILURE; - } - - if ( (uintmax = strtoumax("-1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890" - "1234567890123456789012345678901234567890", - &endptr, 0 - ) - ) != UINTMAX_MAX || errno != ERANGE - ) { - printf("*** strtoumax failed -overflow test ***\n"); - status = EXIT_FAILURE; - } - - /* - 7.8.2.4 The wcstoimax and wcstoumax functions (continued) - */ - - if ( (intmax = wcstoimax(L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890", - &wendptr, 0 - ) - ) != INTMAX_MAX || errno != ERANGE - ) { - printf("*** wcstoimax failed overflow test ***\n"); - status = EXIT_FAILURE; - } - - if ( (intmax = wcstoimax(L"+1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890", - &wendptr, 0 - ) - ) != INTMAX_MAX || errno != ERANGE - ) { - printf("*** wcstoimax failed +overflow test ***\n"); - status = EXIT_FAILURE; - } - - if ( (intmax = wcstoimax(L"-1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890", - &wendptr, 0 - ) - ) != INTMAX_MIN || errno != ERANGE - ) { - printf("*** wcstoimax failed -overflow test ***\n"); - status = EXIT_FAILURE; - } - - if ( (uintmax = wcstoumax(L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890", - &wendptr, 0 - ) - ) != UINTMAX_MAX || errno != ERANGE - ) { - printf("*** wcstoumax failed overflow test ***\n"); - status = EXIT_FAILURE; - } - - if ( (uintmax = wcstoumax(L"+1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890", - &wendptr, 0 - ) - ) != UINTMAX_MAX || errno != ERANGE - ) { - printf("*** wcstoumax failed +overflow test ***\n"); - status = EXIT_FAILURE; - } - - if ( (uintmax = wcstoumax(L"-1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890" - L"1234567890123456789012345678901234567890", - &wendptr, 0 - ) - ) != UINTMAX_MAX || errno != ERANGE - ) { - printf("*** wcstoumax failed -overflow test ***\n"); - status = EXIT_FAILURE; - } - } -#endif /* defined(INTMAX_MAX) */ - - if ( status != 0 ) - fprintf(stderr, "sitest failed; see stdout for details\n"); - - return status; - } diff --git a/winsup/mingw/mingwex/snprintf.c b/winsup/mingw/mingwex/snprintf.c deleted file mode 100644 index c8d2a7b20..000000000 --- a/winsup/mingw/mingwex/snprintf.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <stdarg.h> -#include <stdio.h> - -int snprintf(char* buffer, size_t n, const char* format, ...) -{ - int retval; - va_list argptr; - - va_start( argptr, format ); - retval = _vsnprintf( buffer, n, format, argptr ); - va_end( argptr ); - return retval; -} diff --git a/winsup/mingw/mingwex/snwprintf.c b/winsup/mingw/mingwex/snwprintf.c deleted file mode 100644 index 42b05b292..000000000 --- a/winsup/mingw/mingwex/snwprintf.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <stdarg.h> -#include <wchar.h> - -int snwprintf(wchar_t* buffer, size_t n, const wchar_t* format, ...) -{ - int retval; - va_list argptr; - - va_start( argptr, format ); - retval = _vsnwprintf( buffer, n, format, argptr ); - va_end( argptr ); - return retval; -} diff --git a/winsup/mingw/mingwex/strtof.c b/winsup/mingw/mingwex/strtof.c deleted file mode 100644 index 62907cb19..000000000 --- a/winsup/mingw/mingwex/strtof.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <stdlib.h> - -float strtof( const char *nptr, char **endptr) -{ - return (strtod(nptr, endptr)); -} diff --git a/winsup/mingw/mingwex/strtoimax.c b/winsup/mingw/mingwex/strtoimax.c deleted file mode 100644 index 0cf2c01ed..000000000 --- a/winsup/mingw/mingwex/strtoimax.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - This source code was extracted from the Q8 package created and - placed in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.8.2 of ISO/IEC 9899:1999 (E). - - This particular implementation requires the matching <inttypes.h>. - It also assumes that character codes for A..Z and a..z are in - contiguous ascending order; this is true for ASCII but not EBCDIC. -*/ -#include <stdlib.h> -#include <errno.h> -#include <ctype.h> -#include <inttypes.h> - -/* Helper macros */ - -/* convert digit character to number, in any base */ -#define ToNumber(c) (isdigit(c) ? (c) - '0' : \ - isupper(c) ? (c) - 'A' + 10 : \ - islower(c) ? (c) - 'a' + 10 : \ - -1 /* "invalid" flag */ \ - ) -/* validate converted digit character for specific base */ -#define valid(n, b) ((n) >= 0 && (n) < (b)) - -intmax_t -strtoimax(nptr, endptr, base) - register const char * __restrict__ nptr; - char ** __restrict__ endptr; - register int base; - { - register uintmax_t accum; /* accumulates converted value */ - register int n; /* numeral from digit character */ - int minus; /* set iff minus sign seen */ - int toobig; /* set iff value overflows */ - - if ( endptr != NULL ) - *endptr = (char *)nptr; /* in case no conversion's performed */ - - if ( base < 0 || base == 1 || base > 36 ) - { - errno = EDOM; - return 0; /* unspecified behavior */ - } - - /* skip initial, possibly empty sequence of white-space characters */ - - while ( isspace(*nptr) ) - ++nptr; - - /* process subject sequence: */ - - /* optional sign */ - if ( (minus = *nptr == '-') || *nptr == '+' ) - ++nptr; - - if ( base == 0 ) { - if ( *nptr == '0' ) { - if ( nptr[1] == 'X' || nptr[1] == 'x' ) - base = 16; - else - base = 8; - } - else - base = 10; - } - /* optional "0x" or "0X" for base 16 */ - - if ( base == 16 && *nptr == '0' && (nptr[1] == 'X' || nptr[1] == 'x') ) - nptr += 2; /* skip past this prefix */ - - /* check whether there is at least one valid digit */ - - n = ToNumber(*nptr); - ++nptr; - - if ( !valid(n, base) ) - return 0; /* subject seq. not of expected form */ - - accum = n; - - for ( toobig = 0; n = ToNumber(*nptr), valid(n, base); ++nptr ) - if ( accum > INTMAX_MAX / base + 2 ) /* major wrap-around */ - toobig = 1; /* but keep scanning */ - else - accum = base * accum + n; - - if ( endptr != NULL ) - *endptr = (char *)nptr; /* points to first not-valid-digit */ - - if ( minus ) - { - if ( accum > (uintmax_t)INTMAX_MAX + 1 ) - toobig = 1; - } - else - if ( accum > (uintmax_t)INTMAX_MAX ) - toobig = 1; - - if ( toobig ) - { - errno = ERANGE; - return minus ? INTMAX_MIN : INTMAX_MAX; - } - else - return (intmax_t)(minus ? -accum : accum); - } - -long long __attribute__ ((alias ("strtoimax"))) -strtoll (const char* __restrict__ nptr, char ** __restrict__ endptr, int base); diff --git a/winsup/mingw/mingwex/strtoumax.c b/winsup/mingw/mingwex/strtoumax.c deleted file mode 100644 index 2c052ac06..000000000 --- a/winsup/mingw/mingwex/strtoumax.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - This source code was extracted from the Q8 package created and - placed in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.8.2 of ISO/IEC 9899:1999 (E). - - This particular implementation requires the matching <inttypes.h>. - It also assumes that character codes for A..Z and a..z are in - contiguous ascending order; this is true for ASCII but not EBCDIC. -*/ -#include <stdlib.h> -#include <errno.h> -#include <ctype.h> -#include <inttypes.h> - -/* Helper macros */ - -/* convert digit character to number, in any base */ -#define ToNumber(c) (isdigit(c) ? (c) - '0' : \ - isupper(c) ? (c) - 'A' + 10 : \ - islower(c) ? (c) - 'a' + 10 : \ - -1 /* "invalid" flag */ \ - ) -/* validate converted digit character for specific base */ -#define valid(n, b) ((n) >= 0 && (n) < (b)) - -uintmax_t -strtoumax(nptr, endptr, base) - register const char * __restrict__ nptr; - char ** __restrict__ endptr; - register int base; - { - register uintmax_t accum; /* accumulates converted value */ - register uintmax_t next; /* for computing next value of accum */ - register int n; /* numeral from digit character */ - int minus; /* set iff minus sign seen (yes!) */ - int toobig; /* set iff value overflows */ - - if ( endptr != NULL ) - *endptr = (char *)nptr; /* in case no conversion's performed */ - - if ( base < 0 || base == 1 || base > 36 ) - { - errno = EDOM; - return 0; /* unspecified behavior */ - } - - /* skip initial, possibly empty sequence of white-space characters */ - - while ( isspace(*nptr) ) - ++nptr; - - /* process subject sequence: */ - - /* optional sign (yes!) */ - - if ( (minus = *nptr == '-') || *nptr == '+' ) - ++nptr; - - if ( base == 0 ) - { - if ( *nptr == '0' ) - { - if ( nptr[1] == 'X' || nptr[1] == 'x' ) - base = 16; - else - base = 8; - } - else - base = 10; - } - - /* optional "0x" or "0X" for base 16 */ - - if ( base == 16 && *nptr == '0' && (nptr[1] == 'X' || nptr[1] == 'x') ) - nptr += 2; /* skip past this prefix */ - - /* check whether there is at least one valid digit */ - - n = ToNumber(*nptr); - ++nptr; - - if ( !valid(n, base) ) - return 0; /* subject seq. not of expected form */ - - accum = n; - - for ( toobig = 0; n = ToNumber(*nptr), valid(n, base); ++nptr ) - if ( accum > UINTMAX_MAX / base + 1 /* major wrap-around */ - || (next = base * accum + n) < accum /* minor wrap-around */ - ) - toobig = 1; /* but keep scanning */ - else - accum = next; - - if ( endptr != NULL ) - *endptr = (char *)nptr; /* points to first not-valid-digit */ - - if ( toobig ) - { - errno = ERANGE; - return UINTMAX_MAX; - } - else - return minus ? -accum : accum; /* (yes!) */ - } - -unsigned long long __attribute__ ((alias ("strtoumax"))) -strtoull (const char* __restrict__ nptr, char ** __restrict__ endptr, int base); diff --git a/winsup/mingw/mingwex/testwmem.c b/winsup/mingw/mingwex/testwmem.c deleted file mode 100644 index 1310718c9..000000000 --- a/winsup/mingw/mingwex/testwmem.c +++ /dev/null @@ -1,104 +0,0 @@ -#include <memory.h> -#include <wchar.h> -#include <stdio.h> - -wchar_t fmt1[] = L" 1 2 3 4 5"; -wchar_t fmt2[] = L"12345678901234567890123456789012345678901234567890"; - -void test_wmemchr( void ) -{ - wchar_t* dest; - wint_t result; - wint_t ch = L'r'; - wchar_t str[] = L"lazy"; - wchar_t string1[60] = L"The quick brown dog jumps over the lazy fox"; - - wprintf( L"Wmemchr\n" ); - wprintf( L"String to be searched:\n\t\t%s\n", string1 ); - wprintf( L"\t\t%s\n\t\t%s\n\n", fmt1, fmt2 ); - - wprintf( L"Search char:\t%c\n", ch ); - dest = wmemchr( string1, ch, sizeof( string1 ) ); - result = dest - string1 + 1; - if( dest != NULL ) - wprintf( L"Result:\t\t%c found at position %d\n\n", ch, result ); - else - wprintf( L"Result:\t\t%c not found\n\n" ); -return; -} -void test_wmemset( void ) -{/* 1 2 - 0123456789012345678901234567890 */ - wchar_t buffer[] = L"This is a test of the wmemset function"; - wprintf( L"Before: %s\n", buffer ); - wmemset( buffer+22, L'*', 7 ); - wprintf( L"After: %s\n\n", buffer ); -return; -} - -void test_wmemmove( void ) -{ - wchar_t string1[60] = L"The quick brown dog jumps over the lazy fox"; - wchar_t string2[60] = L"The quick brown fox jumps over the lazy dog"; - - wprintf( L"Wmemcpy without overlap\n" ); - wprintf( L"Source:\t\t%s\n", string1 + 40 ); - wprintf( L"Destination:\t%s\n", string1 + 16 ); - wmemcpy( string1 + 16, string1 + 40, 3 ); - wprintf( L"Result:\t\t%s\n", string1 ); - wprintf( L"Length:\t\t%d characters\n\n", wcslen( string1 ) ); - wmemcpy( string1 + 16, string2 + 40, 3 ); - - wprintf( L"Wmemmove with overlap\n" ); - wprintf( L"Source:\t\t%s\n", string2 + 4 ); - wprintf( L"Destination:\t%s\n", string2 + 10 ); - wmemmove( string2 + 10, string2 + 4, 40 ); - wprintf( L"Result:\t\t%s\n", string2 ); - wprintf( L"Length:\t\t%d characters\n\n", wcslen( string2 ) ); - - wprintf( L"Wmemcpy with overlap\n" ); - wprintf( L"Source:\t\t%s\n", string1 + 4 ); - wprintf( L"Destination:\t%s\n", string1 + 10 ); - wmemcpy( string1 + 10, string1 + 4, 40 ); - wprintf( L"Result:\t\t%s\n", string1 ); - wprintf( L"Length:\t\t%d characters\n\n", wcslen( string1 ) ); -} - - -void test_wmemcmp( void ) -{ - wchar_t first[] = L"12345678901234567890"; - wchar_t second[] = L"12345678901234567891"; - wint_t result; - wprintf(L"Wmemcmp\n"); - wprintf( L"Compare '%.19s' to '%.19s':\n", first, second ); - result = wmemcmp( first, second, 19 ); - if( result < 0 ) - wprintf( L"First is less than second.\n" ); - else if( result == 0 ) - wprintf( L"First is equal to second.\n" ); - else if( result > 0 ) - wprintf( L"First is greater than second.\n" ); - wprintf( L"\nCompare '%.20s' to '%.20s':\n", first, second ); - result = wmemcmp( first, second, 20 ); - if( result < 0 ) - wprintf( L"First is less than second.\n\n" ); - else if( result == 0 ) - wprintf( L"First is equal to second.\n\n" ); - else if( result > 0 ) - wprintf( L"First is greater than second.\n\n" ); -} - - - -int main(){ -test_wmemset(); -test_wmemmove(); -test_wmemchr(); -test_wmemcmp(); -return 0; -} - - - - diff --git a/winsup/mingw/mingwex/ulltoa.c b/winsup/mingw/mingwex/ulltoa.c deleted file mode 100644 index 8e90de764..000000000 --- a/winsup/mingw/mingwex/ulltoa.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <stdlib.h> -char* ulltoa(unsigned long long _n, char * _c, int _i) - { return _ui64toa (_n, _c, _i); } diff --git a/winsup/mingw/mingwex/ulltow.c b/winsup/mingw/mingwex/ulltow.c deleted file mode 100644 index 8e4f228f1..000000000 --- a/winsup/mingw/mingwex/ulltow.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <stdlib.h> -wchar_t* ulltow(unsigned long long _n, wchar_t * _w, int _i) - { return _ui64tow (_n, _w, _i); } diff --git a/winsup/mingw/mingwex/vsnprintf.c b/winsup/mingw/mingwex/vsnprintf.c deleted file mode 100644 index f3dce5b67..000000000 --- a/winsup/mingw/mingwex/vsnprintf.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <stdarg.h> -#include <stdio.h> - -int vsnprintf (char* s, size_t n, const char* format, va_list arg) - { return _vsnprintf ( s, n, format, arg); } diff --git a/winsup/mingw/mingwex/vsnwprintf.c b/winsup/mingw/mingwex/vsnwprintf.c deleted file mode 100644 index 1b59a078b..000000000 --- a/winsup/mingw/mingwex/vsnwprintf.c +++ /dev/null @@ -1,5 +0,0 @@ -#include <stdarg.h> -#include <wchar.h> - -int vsnwprintf(wchar_t *buffer, size_t n, const wchar_t * format, va_list argptr) - { return _vsnwprintf( buffer, n, format, argptr );} diff --git a/winsup/mingw/mingwex/wcstof.c b/winsup/mingw/mingwex/wcstof.c deleted file mode 100644 index 830f79416..000000000 --- a/winsup/mingw/mingwex/wcstof.c +++ /dev/null @@ -1,6 +0,0 @@ -#include <wchar.h> - -float wcstof( const wchar_t *nptr, wchar_t **endptr) -{ - return (wcstod(nptr, endptr)); -} diff --git a/winsup/mingw/mingwex/wcstoimax.c b/winsup/mingw/mingwex/wcstoimax.c deleted file mode 100644 index 4b82b14a2..000000000 --- a/winsup/mingw/mingwex/wcstoimax.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - This source code was extracted from the Q8 package created and - placed in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.8.2 of ISO/IEC 9899:1999 (E). - - This particular implementation requires the matching <inttypes.h>. - It also assumes that character codes for A..Z and a..z are in - contiguous ascending order; this is true for ASCII but not EBCDIC. -*/ - -#include <wchar.h> -#include <errno.h> -#include <ctype.h> -#include <inttypes.h> - -/* convert digit wide character to number, in any base */ - -#define ToWNumber(c) (iswdigit(c) ? (c) - L'0' : \ - iswupper(c) ? (c) - L'A' + 10 : \ - iswlower(c) ? (c) - L'a' + 10 : \ - -1 /* "invalid" flag */ \ - ) - -/* validate converted digit character for specific base */ -#define valid(n, b) ((n) >= 0 && (n) < (b)) - -intmax_t -wcstoimax(nptr, endptr, base) - register const wchar_t * __restrict__ nptr; - wchar_t ** __restrict__ endptr; - register int base; - { - register uintmax_t accum; /* accumulates converted value */ - register int n; /* numeral from digit character */ - int minus; /* set iff minus sign seen */ - int toobig; /* set iff value overflows */ - - if ( endptr != NULL ) - *endptr = (wchar_t *)nptr; /* in case no conv performed */ - - if ( base < 0 || base == 1 || base > 36 ) - { - errno = EDOM; - return 0; /* unspecified behavior */ - } - - /* skip initial, possibly empty sequence of white-space w.characters */ - - while ( iswspace(*nptr) ) - ++nptr; - - /* process subject sequence: */ - - /* optional sign */ - - if ( (minus = *nptr == L'-') || *nptr == L'+' ) - ++nptr; - - if ( base == 0 ) - { - if ( *nptr == L'0' ) - { - if ( nptr[1] == L'X' || nptr[1] == L'x' ) - base = 16; - else - base = 8; - } - else - base = 10; - } - /* optional "0x" or "0X" for base 16 */ - - if ( base == 16 && *nptr == L'0' - && (nptr[1] == L'X' || nptr[1] == L'x') - ) - nptr += 2; /* skip past this prefix */ - - /* check whether there is at least one valid digit */ - - n = ToWNumber(*nptr); - ++nptr; - - if ( !valid(n, base) ) - return 0; /* subject seq. not of expected form */ - - accum = n; - - for ( toobig = 0; n = ToWNumber(*nptr), valid(n, base); ++nptr ) - if ( accum > INTMAX_MAX / base + 2 ) /* major wrap-around */ - toobig = 1; /* but keep scanning */ - else - accum = base * accum + n; - - if ( endptr != NULL ) - *endptr = (wchar_t *)nptr; /* -> first not-valid-digit */ - - if ( minus ) - { - if ( accum > (uintmax_t)INTMAX_MAX + 1 ) - toobig = 1; - } - else - if ( accum > (uintmax_t)INTMAX_MAX ) - toobig = 1; - - if ( toobig ) - { - errno = ERANGE; - return minus ? INTMAX_MIN : INTMAX_MAX; - } - else - return (intmax_t)(minus ? -accum : accum); - } - -long long __attribute__ ((alias ("wcstoimax"))) -wcstoll (const wchar_t* __restrict__ nptr, wchar_t ** __restrict__ endptr, int base); diff --git a/winsup/mingw/mingwex/wcstoumax.c b/winsup/mingw/mingwex/wcstoumax.c deleted file mode 100644 index 9bd6cd704..000000000 --- a/winsup/mingw/mingwex/wcstoumax.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - This source code was extracted from the Q8 package created and - placed in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.8.2 of ISO/IEC 9899:1999 (E). - - This particular implementation requires the matching <inttypes.h>. - It also assumes that character codes for A..Z and a..z are in - contiguous ascending order; this is true for ASCII but not EBCDIC. -*/ - -#include <wchar.h> -#include <errno.h> -#include <ctype.h> -#include <inttypes.h> - -/* convert digit wide character to number, in any base */ - -#define ToWNumber(c) (iswdigit(c) ? (c) - L'0' : \ - iswupper(c) ? (c) - L'A' + 10 : \ - iswlower(c) ? (c) - L'a' + 10 : \ - -1 /* "invalid" flag */ \ - ) - -/* validate converted digit character for specific base */ -#define valid(n, b) ((n) >= 0 && (n) < (b)) - -uintmax_t -wcstoumax(nptr, endptr, base) - register const wchar_t * __restrict__ nptr; - wchar_t ** __restrict__ endptr; - register int base; - { - register uintmax_t accum; /* accumulates converted value */ - register uintmax_t next; /* for computing next value of accum */ - register int n; /* numeral from digit character */ - int minus; /* set iff minus sign seen (yes!) */ - int toobig; /* set iff value overflows */ - - if ( endptr != NULL ) - *endptr = (wchar_t *)nptr; /* in case no conv performed */ - - if ( base < 0 || base == 1 || base > 36 ) - { - errno = EDOM; - return 0; /* unspecified behavior */ - } - - /* skip initial, possibly empty sequence of white-space w.characters */ - - while ( iswspace(*nptr) ) - ++nptr; - - /* process subject sequence: */ - - /* optional sign */ - - if ( (minus = *nptr == L'-') || *nptr == L'+' ) - ++nptr; - - if ( base == 0 ) - { - if ( *nptr == L'0' ) - { - if ( nptr[1] == L'X' || nptr[1] == L'x' ) - base = 16; - else - base = 8; - } - else - base = 10; - } - /* optional "0x" or "0X" for base 16 */ - - if ( base == 16 && *nptr == L'0' - && (nptr[1] == L'X' || nptr[1] == L'x') - ) - nptr += 2; /* skip past this prefix */ - - /* check whether there is at least one valid digit */ - - n = ToWNumber(*nptr); - ++nptr; - - if ( !valid(n, base) ) - return 0; /* subject seq. not of expected form */ - - accum = n; - - for ( toobig = 0; n = ToWNumber(*nptr), valid(n, base); ++nptr ) - if ( accum > UINTMAX_MAX / base + 1 /* major wrap-around */ - || (next = base * accum + n) < accum /* minor wrap-around */ - ) - toobig = 1; /* but keep scanning */ - else - accum = next; - - if ( endptr != NULL ) - *endptr = (wchar_t *)nptr; /* -> first not-valid-digit */ - - if ( toobig ) - { - errno = ERANGE; - return UINTMAX_MAX; - } - else - return minus ? -accum : accum; /* (yes!) */ - } - -unsigned long long __attribute__ ((alias ("wcstoumax"))) -wcstoull (const wchar_t* __restrict__ nptr, wchar_t ** __restrict__ endptr, int base); diff --git a/winsup/mingw/mingwex/wdirent.c b/winsup/mingw/mingwex/wdirent.c deleted file mode 100644 index 4b8cc5054..000000000 --- a/winsup/mingw/mingwex/wdirent.c +++ /dev/null @@ -1,3 +0,0 @@ -#define _UNICODE 1 -#define UNICODE 1 -#include "dirent.c" diff --git a/winsup/mingw/mingwex/wmemchr.c b/winsup/mingw/mingwex/wmemchr.c deleted file mode 100644 index dc5cedd23..000000000 --- a/winsup/mingw/mingwex/wmemchr.c +++ /dev/null @@ -1,28 +0,0 @@ -/* This source code was extracted from the Q8 package created and placed - in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.24 of ISO/IEC 9899:1999 (E). - - It supports an encoding where all char codes are mapped - to the *same* code values within a wchar_t or wint_t, - so long as no other wchar_t codes are used by the program. - -*/ - -#include <wchar.h> - -wchar_t* -wmemchr(s, c, n) - register const wchar_t *s; - register wchar_t c; - register size_t n; - { - if ( s != NULL ) - for ( ; n > 0; ++s, --n ) - if ( *s == c ) - return (wchar_t *)s; - - return NULL; - } - diff --git a/winsup/mingw/mingwex/wmemcmp.c b/winsup/mingw/mingwex/wmemcmp.c deleted file mode 100644 index e1e034c7b..000000000 --- a/winsup/mingw/mingwex/wmemcmp.c +++ /dev/null @@ -1,32 +0,0 @@ -/* This source code was extracted from the Q8 package created and placed - in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.24 of ISO/IEC 9899:1999 (E). - - It supports an encoding where all char codes are mapped - to the *same* code values within a wchar_t or wint_t, - so long as no other wchar_t codes are used by the program. - -*/ - -#include <wchar.h> - -int -wmemcmp(s1, s2, n) - register const wchar_t *s1; - register const wchar_t *s2; - size_t n; - { - if ( n == 0 || s1 == s2 ) - return 0; /* even for NULL pointers */ - - if ( (s1 != NULL) != (s2 != NULL) ) - return s2 == NULL ? 1 : -1; /* robust */ - - for ( ; n > 0; ++s1, ++s2, --n ) - if ( *s1 != *s2 ) - return *s1 - *s2; - - return 0; - } diff --git a/winsup/mingw/mingwex/wmemcpy.c b/winsup/mingw/mingwex/wmemcpy.c deleted file mode 100644 index d7e7b4cb3..000000000 --- a/winsup/mingw/mingwex/wmemcpy.c +++ /dev/null @@ -1,32 +0,0 @@ -/* This source code was extracted from the Q8 package created and placed - in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.24 of ISO/IEC 9899:1999 (E). - - It supports an encoding where all char codes are mapped - to the *same* code values within a wchar_t or wint_t, - so long as no other wchar_t codes are used by the program. - -*/ - -#include <wchar.h> - - -wchar_t * -wmemcpy(s1, s2, n) - register wchar_t * __restrict__ s1; - register const wchar_t * __restrict__ s2; - register size_t n; - { - wchar_t *orig_s1 = s1; - - if ( s1 == NULL || s2 == NULL || n == 0 ) - return orig_s1; /* robust */ - - for ( ; n > 0; --n ) - *s1++ = *s2++; - - return orig_s1; - } - diff --git a/winsup/mingw/mingwex/wmemmove.c b/winsup/mingw/mingwex/wmemmove.c deleted file mode 100644 index 3c545ac32..000000000 --- a/winsup/mingw/mingwex/wmemmove.c +++ /dev/null @@ -1,43 +0,0 @@ -/* This source code was extracted from the Q8 package created and placed - in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.24 of ISO/IEC 9899:1999 (E). - - It supports an encoding where all char codes are mapped - to the *same* code values within a wchar_t or wint_t, - so long as no other wchar_t codes are used by the program. - -*/ - -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <wchar.h> - -wchar_t * -wmemmove(s1, s2, n) - register wchar_t *s1; - register const wchar_t *s2; - register size_t n; - { - wchar_t *orig_s1 = s1; - - if ( s1 == NULL || s2 == NULL || n == 0 ) - return orig_s1; /* robust */ - - /* XXX -- The following test works only within a flat address space! */ - if ( s2 >= s1 ) - for ( ; n > 0; --n ) - *s1++ = *s2++; - else { - s1 += n; - s2 += n; - - for ( ; n > 0; --n ) - *--s1 = *--s2; - } - - return orig_s1; - } - diff --git a/winsup/mingw/mingwex/wmemset.c b/winsup/mingw/mingwex/wmemset.c deleted file mode 100644 index dadd9fb07..000000000 --- a/winsup/mingw/mingwex/wmemset.c +++ /dev/null @@ -1,30 +0,0 @@ -/* This source code was extracted from the Q8 package created and placed - in the PUBLIC DOMAIN by Doug Gwyn <gwyn@arl.mil> - last edit: 1999/11/05 gwyn@arl.mil - - Implements subclause 7.24 of ISO/IEC 9899:1999 (E). - - It supports an encoding where all char codes are mapped - to the *same* code values within a wchar_t or wint_t, - so long as no other wchar_t codes are used by the program. - -*/ - -#include <wchar.h> - - -wchar_t * -wmemset(s, c, n) - register wchar_t *s; - register wchar_t c; - register size_t n; - { - wchar_t *orig_s = s; - - if ( s != NULL ) - for ( ; n > 0; --n ) - *s++ = c; - - return orig_s; - } - diff --git a/winsup/mingw/mingwex/wtoll.c b/winsup/mingw/mingwex/wtoll.c deleted file mode 100644 index 48f856245..000000000 --- a/winsup/mingw/mingwex/wtoll.c +++ /dev/null @@ -1,3 +0,0 @@ -#include <stdlib.h> -long long wtoll(const wchar_t * _w) - { return _wtoi64 (_w); }; |