2009-05-26 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Tue, 26 May 2009 00:46:19 +0000 (00:46 -0000)
committerZoltan Varga <vargaz@gmail.com>
Tue, 26 May 2009 00:46:19 +0000 (00:46 -0000)
* CMakeLists.txt: implement arm fpu detection, add vfp detection as
well.

svn path=/trunk/mono/; revision=134737

CMakeLists.txt
ChangeLog

index ed80942bc8ea3d0e70570d0cef88c64fcc32b14a..3d49ae35102abdf73a9cc8ba95ae5cdb25b578b5 100644 (file)
@@ -2431,20 +2431,38 @@ if (with_tls STREQUAL "__thread")
 ###fi
 
 endif()
-###if test ${TARGET} = ARM && test x$cross_compiling = xno && test x$enable_mcs_build != xno; then
+
 # ******************************************
 # *** Check to see what FPU is available ***
 # ******************************************
-###    ac_msg_checking(which FPU to use)
-
-###    AC_TRY_COMPILE([], [
-###            __asm__ ("ldfd f0, [r0]");
-###            ], set(fpu FPA, fpu=NONE))
-
-###    ac_msg_result($fpu)
-###    set(CPPFLAGS "$CPPFLAGS -DARM_FPU_$fpu=1")
-###    unset fpu
-###fi
+# FIXME: Don't do this if cross-compiling
+if(${TARGET} STREQUAL "ARM")
+  ac_msg_checking("which FPU to use")
+  set(CMAKE_REQUIRED_FLAGS "-mfloat-abi=softfp -mfpu=vfp")
+  set(compiles_fpu_vfp)
+  check_c_source_compiles("
+void main () {
+               __asm__ (\"faddd   d7, d6, d7\");
+}
+" compiles_fpu_vfp)
+  set(compiles_fpu_fpa)
+  set(cmake_required_flags)
+  check_c_source_compiles("
+void main () {
+               __asm__ (\"ldfd f0, [r0]\");
+}
+" compiles_fpu_fpa)
+  if(compiles_fpu_vfp)
+       set(fpu VFP)
+  elseif(compiles_fpu_fpa)
+       set(fpu FPA)
+  else()
+       set(fpu NONE)
+  endif()
+  ac_msg_result(${fpu})
+  set(CPPFLAGS "${CPPFLAGS} -DARM_FPU_${fpu}=1")
+  set(fpu)
+endif()
 
 if(${TARGET} STREQUAL "unknown")
        set(CPPFLAGS ${CPPFLAGS} -DNO_PORT)
@@ -2452,7 +2470,7 @@ if(${TARGET} STREQUAL "unknown")
 endif()
 
 if(NOT ACCESS_UNALIGNED)
-  set(CPPFLAGS ${CPPFLAGS} -DNO_UNALIGNED_ACCESS)
+  set(CPPFLAGS "${CPPFLAGS} -DNO_UNALIGNED_ACCESS")
 endif()
 
 ###case "x$gc" in
index b648f8a8335afd0858f2e93ed0ed7a559d8b0b87..09b6a0b8d6582c994d59ddf3a8c74780eea760a5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2009-05-26  Zoltan Varga  <vargaz@gmail.com>
 
+       * CMakeLists.txt: implement arm fpu detection, add vfp detection as
+       well.
+       
        * CMakeLists.txt: Add arm support.
 
 2009-05-24  Miguel de Icaza  <miguel@novell.com>