From 7d4260a382b673b5b0a4f3963eb2b16c7f36cd26 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Sat, 17 Jan 2009 02:03:25 +0000 Subject: [PATCH] Makefile.am (sources): Add math_stubs_float.cc. 2009-01-16 Benjamin Kosnik * src/Makefile.am (sources): Add math_stubs_float.cc. * src/Makefile.in: Regenerate. * src/math_stubs_float.cc: New, from libmath/stubs.c. From-SVN: r143457 --- libstdc++-v3/ChangeLog | 6 + libstdc++-v3/src/Makefile.am | 1 + libstdc++-v3/src/Makefile.in | 42 ++--- libstdc++-v3/src/math_stubs_float.cc | 229 +++++++++++++++++++++++++++ 4 files changed, 258 insertions(+), 20 deletions(-) create mode 100644 libstdc++-v3/src/math_stubs_float.cc diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index f33067b896d..30287e8480d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2009-01-16 Benjamin Kosnik + + * src/Makefile.am (sources): Add math_stubs_float.cc. + * src/Makefile.in: Regenerate. + * src/math_stubs_float.cc: New, from libmath/stubs.c. + 2009-01-15 Benjamin Kosnik * src/Makefile.am (sources): Add math_stubs_long_double.cc. diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am index c922d8fea94..185ac4d1c52 100644 --- a/libstdc++-v3/src/Makefile.am +++ b/libstdc++-v3/src/Makefile.am @@ -162,6 +162,7 @@ sources = \ locale_init.cc \ locale_facets.cc \ localename.cc \ + math_stubs_float.cc \ math_stubs_long_double.cc \ stdexcept.cc \ strstream.cc \ diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index ad75f4a674c..9ee5275198b 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -79,18 +79,18 @@ am__libstdc___la_SOURCES_DIST = atomic.cc bitmap_allocator.cc \ hash_c++0x.cc globals_io.cc hashtable.cc hashtable_c++0x.cc \ ios.cc ios_failure.cc ios_init.cc ios_locale.cc limits.cc \ limits_c++0x.cc list.cc debug_list.cc locale.cc locale_init.cc \ - locale_facets.cc localename.cc math_stubs_long_double.cc \ - stdexcept.cc strstream.cc system_error.cc tree.cc \ - allocator-inst.cc concept-inst.cc fstream-inst.cc ext-inst.cc \ - ios-inst.cc iostream-inst.cc istream-inst.cc istream.cc \ - locale-inst.cc misc-inst.cc ostream-inst.cc sstream-inst.cc \ - streambuf-inst.cc streambuf.cc string-inst.cc valarray-inst.cc \ - wlocale-inst.cc wstring-inst.cc mutex.cc condition_variable.cc \ - chrono.cc thread.cc atomicity.cc codecvt_members.cc \ - collate_members.cc ctype_members.cc messages_members.cc \ - monetary_members.cc numeric_members.cc time_members.cc \ - basic_file.cc c++locale.cc compatibility-ldbl.cc \ - parallel_list.cc parallel_settings.cc + locale_facets.cc localename.cc math_stubs_float.cc \ + math_stubs_long_double.cc stdexcept.cc strstream.cc \ + system_error.cc tree.cc allocator-inst.cc concept-inst.cc \ + fstream-inst.cc ext-inst.cc ios-inst.cc iostream-inst.cc \ + istream-inst.cc istream.cc locale-inst.cc misc-inst.cc \ + ostream-inst.cc sstream-inst.cc streambuf-inst.cc streambuf.cc \ + string-inst.cc valarray-inst.cc wlocale-inst.cc \ + wstring-inst.cc mutex.cc condition_variable.cc chrono.cc \ + thread.cc atomicity.cc codecvt_members.cc collate_members.cc \ + ctype_members.cc messages_members.cc monetary_members.cc \ + numeric_members.cc time_members.cc basic_file.cc c++locale.cc \ + compatibility-ldbl.cc parallel_list.cc parallel_settings.cc am__objects_1 = atomicity.lo codecvt_members.lo collate_members.lo \ ctype_members.lo messages_members.lo monetary_members.lo \ numeric_members.lo time_members.lo @@ -105,14 +105,15 @@ am__objects_5 = atomic.lo bitmap_allocator.lo pool_allocator.lo \ globals_io.lo hashtable.lo hashtable_c++0x.lo ios.lo \ ios_failure.lo ios_init.lo ios_locale.lo limits.lo \ limits_c++0x.lo list.lo debug_list.lo locale.lo locale_init.lo \ - locale_facets.lo localename.lo math_stubs_long_double.lo \ - stdexcept.lo strstream.lo system_error.lo tree.lo \ - allocator-inst.lo concept-inst.lo fstream-inst.lo ext-inst.lo \ - ios-inst.lo iostream-inst.lo istream-inst.lo istream.lo \ - locale-inst.lo misc-inst.lo ostream-inst.lo sstream-inst.lo \ - streambuf-inst.lo streambuf.lo string-inst.lo valarray-inst.lo \ - wlocale-inst.lo wstring-inst.lo mutex.lo condition_variable.lo \ - chrono.lo thread.lo $(am__objects_1) $(am__objects_4) + locale_facets.lo localename.lo math_stubs_float.lo \ + math_stubs_long_double.lo stdexcept.lo strstream.lo \ + system_error.lo tree.lo allocator-inst.lo concept-inst.lo \ + fstream-inst.lo ext-inst.lo ios-inst.lo iostream-inst.lo \ + istream-inst.lo istream.lo locale-inst.lo misc-inst.lo \ + ostream-inst.lo sstream-inst.lo streambuf-inst.lo streambuf.lo \ + string-inst.lo valarray-inst.lo wlocale-inst.lo \ + wstring-inst.lo mutex.lo condition_variable.lo chrono.lo \ + thread.lo $(am__objects_1) $(am__objects_4) am_libstdc___la_OBJECTS = $(am__objects_5) libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) @@ -412,6 +413,7 @@ sources = \ locale_init.cc \ locale_facets.cc \ localename.cc \ + math_stubs_float.cc \ math_stubs_long_double.cc \ stdexcept.cc \ strstream.cc \ diff --git a/libstdc++-v3/src/math_stubs_float.cc b/libstdc++-v3/src/math_stubs_float.cc new file mode 100644 index 00000000000..f29566d614c --- /dev/null +++ b/libstdc++-v3/src/math_stubs_float.cc @@ -0,0 +1,229 @@ +// Stub definitions for float math. + +// Copyright (C) 2001, 2002, 2003, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include + +// For targets which do not have support for float versions, +// we use the following crude approximations. We keep saying that we'll do +// better later, but never do. + +extern "C" +{ +#ifndef _GLIBCXX_HAVE_FABSF + float + fabsf(float x) + { + return (float) fabs(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_ACOSF + float + acosf(float x) + { + return (float) acos(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_ASINF + float + asinf(float x) + { + return (float) asin(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_ATANF + float + atanf(float x) + { + return (float) atan(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_ATAN2F + float + atan2f(float x, float y) + { + return (float) atan2(x, y); + } +#endif + +#ifndef _GLIBCXX_HAVE_CEILF + float + ceilf(float x) + { + return (float) ceil(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_COSF + float + cosf(float x) + { + return (float) cos(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_COSHF + float + coshf(float x) + { + return (float) cosh(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_EXPF + float + expf(float x) + { + return (float) exp(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_FLOORF + float + floorf(float x) + { + return (float) floor(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_FMODF + float + fmodf(float x, float y) + { + return (float) fmod(x, y); + } +#endif + +#ifndef _GLIBCXX_HAVE_FREXPF + float + frexpf(float x, int *exp) + { + return (float) frexp(x, exp); + } +#endif + +#ifndef _GLIBCXX_HAVE_SQRTF + float + sqrtf(float x) + { + return (float) sqrt(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_HYPOTF + float + hypotf(float x, float y) + { + float s = fabsf(x) + fabsf(y); + if (s == 0.0F) + return s; + x /= s; y /= s; + return s * sqrtf(x * x + y * y); + } +#endif + +#ifndef _GLIBCXX_HAVE_LDEXPF + float + ldexpf(float x, int exp) + { + return (float) ldexp(x, exp); + } +#endif + +#ifndef _GLIBCXX_HAVE_LOGF + float + logf(float x) + { + return (float) log(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_LOG10F + float + log10f(float x) + { + return (float) log10(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_MODFF + float + modff(float x, float *iptr) + { + double result, temp; + + result = modf(x, &temp); + *iptr = (float) temp; + return (float) result; + } +#endif + +#ifndef _GLIBCXX_HAVE_POWF + float + powf(float x, float y) + { + return (float) pow(x, y); + } +#endif + +#ifndef _GLIBCXX_HAVE_SINF + float + sinf(float x) + { + return (float) sin(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_SINHF + float + sinhf(float x) + { + return (float) sinh(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_TANF + float + tanf(float x) + { + return (float) tan(x); + } +#endif + +#ifndef _GLIBCXX_HAVE_TANHF + float + tanhf(float x) + { + return (float) tanh(x); + } +#endif +} // extern "C" -- 2.30.2