This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

V3 PATCH [BRANCH]: Fixes various math symbols



This patches fixes a regression on AIX where we failed to provide
"C"-library fallback versions for some mathematical
__builtin-functions.  It is already on mainline.

Bootstrapped and tested on an i686-pc-linux and AIX.

-- Gaby
CodeSourcery, LLC            http://www.codesourcery.com
     http://www.codesourcery.com/gcc-compile.shtml

2001-06-24  Gabriel Dos Reis  <gdr@codesourcery.com>
            David Edelsohn <dje@watson.ibm.com>

	* libmath/stubs.c: New file.
	* libmath/Makefile.am (libmath_la_SOURCES): Add stubs.c.
	* libmath/Makefile.in: Regenerate.

Index: Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/libmath/Makefile.am,v
retrieving revision 1.11
diff -p -r1.11 Makefile.am
*** Makefile.am	2001/02/03 09:01:44	1.11
--- Makefile.am	2001/06/24 12:53:37
*************** libmath_la_LIBADD = \
*** 40,47 ****
  
  libmath_la_DEPENDENCIES = $(libmath_la_LIBADD)
  
! libmath_la_SOURCES = \
! 	signbit.c signbitf.c
  
  LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
  
--- 40,46 ----
  
  libmath_la_DEPENDENCIES = $(libmath_la_LIBADD)
  
! libmath_la_SOURCES = signbit.c signbitf.c stubs.c
  
  LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
  
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/libmath/Makefile.in,v
retrieving revision 1.37.2.3
diff -p -r1.37.2.3 Makefile.in
*** Makefile.in	2001/05/14 19:49:10	1.37.2.3
--- Makefile.in	2001/06/24 12:53:37
*************** libmath_la_LIBADD =  	@LIBMATHOBJS@ 	$(E
*** 128,136 ****
  
  libmath_la_DEPENDENCIES = $(libmath_la_LIBADD)
  
! libmath_la_SOURCES =  	signbit.c signbitf.c
  
- 
  LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
  
  # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
--- 128,135 ----
  
  libmath_la_DEPENDENCIES = $(libmath_la_LIBADD)
  
! libmath_la_SOURCES = signbit.c signbitf.c stubs.c
  
  LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
  
  # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
*************** CPPFLAGS = @CPPFLAGS@
*** 154,160 ****
  LDFLAGS = @LDFLAGS@
  LIBS = @LIBS@
  libmath_la_LDFLAGS = 
! libmath_la_OBJECTS =  signbit.lo signbitf.lo
  CFLAGS = @CFLAGS@
  COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
  LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
--- 153,159 ----
  LDFLAGS = @LDFLAGS@
  LIBS = @LIBS@
  libmath_la_LDFLAGS = 
! libmath_la_OBJECTS =  signbit.lo signbitf.lo stubs.lo
  CFLAGS = @CFLAGS@
  COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
  LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
Index: stubs.c
===================================================================
RCS file: stubs.c
diff -N stubs.c
*** /dev/null	Tue May  5 13:32:27 1998
--- stubs.c	Sun Jun 24 05:53:37 2001
***************
*** 0 ****
--- 1,119 ----
+ /* Stub definitions for libmath subpart of libstdc++. */
+ 
+ /* Copyright (C) 2001 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+    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 <math.h>
+ #include <bits/c++config.h>
+ 
+ #if !defined(_GLIBCPP_HAVE_COSF) && !defined(_GLIBCPP_HAVE___BUILTIN_COSF)
+ float
+ cosf(float x)
+ {
+   return (float) cos(x);
+ }
+ #endif
+ 
+ #ifndef _GLIBCPP_HAVE_COSHF
+ float
+ coshf(float x)
+ {
+   return (float) cosh(x);
+ }
+ #endif
+ 
+ #ifndef _GLIBCPP_HAVE_EXPF
+ float
+ expf(float x)
+ {
+   return (float) exp(x);
+ }
+ #endif
+ 
+ #ifndef _GLIBCPP_HAVE_LOGF
+ float
+ logf(float x)
+ {
+   return (float) log(x);
+ }
+ #endif
+ 
+ #ifndef _GLIBCPP_HAVE_LOG10F
+ float
+ log10f(float x)
+ {
+   return (float) log10(x);
+ }
+ #endif
+ 
+ #ifndef _GLIBCPP_HAVE_POWF
+ float
+ powf(float x, float y)
+ {
+   return (float) pow(x, y);
+ }
+ #endif
+ 
+ #if !defined(_GLIBCPP_HAVE_SINF) && !defined(_GLIBCPP_HAVE___BUILTIN_SINF)
+ float
+ sinf(float x)
+ {
+   return (float) sin(x);
+ }
+ #endif
+ 
+ #ifndef _GLIBCPP_HAVE_SINHF
+ float
+ sinhf(float x)
+ {
+   return (float) sinh(x);
+ }
+ #endif
+ 
+ #ifndef _GLIBCPP_HAVE_SQRTF
+ float
+ sqrtf(float x)
+ {
+   return (float) sqrt(x);
+ }
+ #endif
+ 
+ #ifndef _GLIBCPP_HAVE_TANF
+ float
+ tanf(float x)
+ {
+   return (float) tan(x);
+ }
+ #endif
+ 
+ #ifndef _GLIBCPP_HAVE_TANHF
+ float
+ tanhf(float x)
+ {
+   return (float) tanh(x);
+ }
+ #endif


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]