Lack of fabsf on Solaris (patch included)

Martin Kahlert martin.kahlert@infineon.com
Thu Jan 25 05:00:00 GMT 2001


Hi,
there is no fabsf on Solaris machines.
The appended patch removed the problem, but i assume it was
by accident. 
I tried it on linux (which has fabsf) and got a 
/* #undef HAVE_FABSF */
in i686-pc-linux-gnu/libjava/include/config.h
Any idea, why this patch doesn't do what it should?
(Perhaps it's just a missing autoconf in libjava - I'll try
another build now).
I applied the following patch and built it with
configure --prefix=${prefix} --enable-languages=c++,f77,java \
 --enable-threads=posix --enable-libstdcxx-v3 \
 --with-gnu-as --with-gnu-ld
gmake && gmake install
Bye,
Martin.
Here is the patch:
diff -cr gcc-20010122/configure.in gcc-20010122.new/configure.in
*** gcc-20010122/configure.in	Mon Jan 22 02:47:11 2001
--- gcc-20010122.new/configure.in	Thu Jan 25 10:09:00 2001
***************
*** 951,957 ****
 noconfigdirs="${libgcj}"
 ;; 
 *-*-*)
! noconfigdirs="${libgcj}"
 ;;
 esac
 
--- 951,957 ----
 noconfigdirs="${libgcj}"
 ;; 
 *-*-*)
! noconfigdirs=""
 ;;
 esac
 
diff -cr gcc-20010122/libjava/configure.in gcc-20010122.new/libjava/configure.in
*** gcc-20010122/libjava/configure.in	Fri Jan 12 20:16:04 2001
--- gcc-20010122.new/libjava/configure.in	Wed Jan 24 16:20:59 2001
***************
*** 165,170 ****
--- 165,171 ----
 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED))
 AC_EGREP_HEADER(u_int32_t, sys/types.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED))
 AC_EGREP_HEADER(u_int32_t, sys/config.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED))
+ AC_EGREP_HEADER(fabsf, math.h, AC_DEFINE(HAVE_FABSF))
 
 
 dnl These may not be defined in a non-ANS conformant embedded system.
diff -cr gcc-20010122/libjava/include/config.h.in gcc-20010122.new/libjava/include/config.h.in
*** gcc-20010122/libjava/include/config.h.in	Fri Jan 12 20:16:05 2001
--- gcc-20010122.new/libjava/include/config.h.in	Thu Jan 25 11:22:39 2001
***************
*** 52,57 ****
--- 52,60 ----
 /* Define if you have u_int32_t */
 #undef HAVE_BSD_INT32_DEFINED
 
+ /* Define if you have fabsf */
+ #undef HAVE_FABSF
+ 
 /* Define if you're running eCos. */
 #undef ECOS
 
diff -cr gcc-20010122/libjava/java/lang/natMath.cc gcc-20010122.new/libjava/java/lang/natMath.cc
*** gcc-20010122/libjava/java/lang/natMath.cc	Sat Dec 2 01:28:44 2000
--- gcc-20010122.new/libjava/java/lang/natMath.cc	Wed Jan 24 16:20:37 2001
***************
*** 27,33 ****
--- 27,35 ----
 
 #include "fdlibm.h"
 
+ #ifdef HAVE_FABSF
 extern "C" float fabsf (float);
+ #endif
 
 jdouble java::lang::Math::cos(jdouble x)
 {
***************
*** 96,102 ****
--- 98,108 ----
 
 jfloat java::lang::Math::abs(jfloat x)
 {
+ #ifdef HAVE_FABSF
 return (jfloat)::fabsf((float)x);
+ #else
+ return (jfloat)::fabs((double)x);
+ #endif
 } 
 
 jdouble java::lang::Math::rint(jdouble x)
-- 
The early bird gets the worm. If you want something else for 
breakfast, get up later.


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /