The liboil Makefile will use "-mcpu=vfp" when building for ARM.
authorUlf Samuelsson <ulf.samuelsson@atmel.com>
Sun, 18 Jan 2009 10:51:53 +0000 (10:51 -0000)
committerUlf Samuelsson <ulf.samuelsson@atmel.com>
Sun, 18 Jan 2009 10:51:53 +0000 (10:51 -0000)
The VFP is only available for a few ARM CPUs at the moment,
so this breaks the liboil build.

A patch is available upstream which only enables "-mfpu=vfp"
if "--enable-vfp" is given to "configure".
Autotools needs to be run for liboil for this to take effect.

A new configuration BR2_VFP_FLOAT is added to allow enabling vfp.
If this is "yes", then "-mfpu=vfp" is added to CFLAGS.

package/Makefile.in
package/liboil/liboil-vfp.patch [new file with mode: 0644]
package/liboil/liboil.mk
toolchain/Config.in.2

index a5be4d7b06fc0cea505f3a0e3846bac18b19e7c3..c430f8bf3cdaa8b933ca495f5f32f71b2cd2cd0b 100644 (file)
@@ -71,6 +71,10 @@ ifeq ($(BR2_SOFT_FLOAT),y)
 TARGET_CFLAGS+=-msoft-float
 endif
 
+ifeq ($(BR2_VFP_FLOAT),y)
+TARGET_CFLAGS+=-mfpu=vfp
+endif
+
 # enable VIS for v9a and v9b
 ifeq ($(findstring y,$(BR2_sparc_v9a)$(BR2_sparc64_v9a)$(BR2_sparc_v9b)$(BR2_sparc64_v9b)),y)
 TARGET_CFLAGS+=-mvis
diff --git a/package/liboil/liboil-vfp.patch b/package/liboil/liboil-vfp.patch
new file mode 100644 (file)
index 0000000..815c9bb
--- /dev/null
@@ -0,0 +1,16 @@
+diff --git a/configure.ac b/configure.ac
+index 06a0ac9..b8d1640 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -158,7 +158,10 @@ if test x$HAVE_GCC_ASM = xyes -a x$HAVE_POWERPC = xyes ; then
+     true)
+ fi
+-if test x$HAVE_GCC_ASM = xyes -a x$HAVE_ARM = xyes ; then
++AC_ARG_ENABLE(vfp,
++  AC_HELP_STRING([--enable-vfp],[compile with Vector Floating-point unit support]),
++  enable_vfp=$enableval,enable_vfp=yes)
++if test "x$enable-vfp" = xyes -a x$HAVE_GCC_ASM = xyes -a x$HAVE_ARM = xyes; then
+   AS_COMPILER_FLAG(["-Wa,-mfpu=vfp"],
+     [LIBOIL_CFLAGS="$LIBOIL_CFLAGS -mfpu=vfp"],
+     true)
index 0d1ec8291278f56807a0575e9c3ca6be9586f73f..37970911ad8437a975d4f871bad355905e11e6ac 100644 (file)
@@ -6,7 +6,7 @@
 LIBOIL_VERSION = 0.3.15
 LIBOIL_SOURCE = liboil-$(LIBOIL_VERSION).tar.gz
 LIBOIL_SITE = http://liboil.freedesktop.org/download
-LIBOIL_AUTORECONF = NO
+LIBOIL_AUTORECONF = YES
 LIBOIL_INSTALL_STAGING = YES
 LIBOIL_INSTALL_TARGET = YES
 
@@ -30,6 +30,10 @@ ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
 LIBOIL_GLIB_DEP = libglib2
 endif
 
+ifeq ($(BR2_VFP_FLOAT),y)
+LIBOIL_CONF_OPT+=--enable-vfp
+endif
+
 LIBOIL_DEPENDENCIES = uclibc $(LIBOIL_GLIB_DEP)
 
 $(eval $(call AUTOTARGETS,package,liboil))
@@ -37,4 +41,4 @@ $(eval $(call AUTOTARGETS,package,liboil))
 $(LIBOIL_HOOK_POST_INSTALL):
        # Remove useless bugreport program from the target
        rm -f $(TARGET_DIR)/usr/bin/oil-bugreport
-       touch $@
\ No newline at end of file
+       touch $@
index b8c1515069b51a1a49fbc1f132bba961a31e45ac..9fbe60c148247f702052009cd0719af148506afa 100644 (file)
@@ -42,8 +42,17 @@ config BR2_SOFT_FLOAT
 
          Most people will answer N.
 
-#config BR2_SOFT_FLOAT_FP
-#      bool "Use softfp"
+config BR2_VFP_FLOAT
+       bool "Use ARM Vector Floating Point unit"
+       depends on !BR2_SOFT_FLOAT
+       depends on BR2_arm || BR2_armeb
+       help
+         Setting this option will enable the "-mfpu=vfp" option.
+         If your ARM CPU has a Vector Floating Point Unit (VFP)
+         and the toolchain supports the option, then the 
+         code can be optimized.
+         
+         Most people will answer N.
 
 config BR2_TARGET_OPTIMIZATION
        string "Target Optimizations"