From 6da70de5034ae3933c6d072378a8860078686200 Mon Sep 17 00:00:00 2001 From: Ulf Samuelsson Date: Sun, 18 Jan 2009 10:51:53 +0000 Subject: The liboil Makefile will use "-mcpu=vfp" when building for ARM. 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 | 4 ++++ package/liboil/liboil-vfp.patch | 16 ++++++++++++++++ package/liboil/liboil.mk | 8 ++++++-- toolchain/Config.in.2 | 13 +++++++++++-- 4 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 package/liboil/liboil-vfp.patch diff --git a/package/Makefile.in b/package/Makefile.in index a5be4d7b0..c430f8bf3 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -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 index 000000000..815c9bb9a --- /dev/null +++ b/package/liboil/liboil-vfp.patch @@ -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) diff --git a/package/liboil/liboil.mk b/package/liboil/liboil.mk index 0d1ec8291..37970911a 100644 --- a/package/liboil/liboil.mk +++ b/package/liboil/liboil.mk @@ -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 $@ diff --git a/toolchain/Config.in.2 b/toolchain/Config.in.2 index b8c151506..9fbe60c14 100644 --- a/toolchain/Config.in.2 +++ b/toolchain/Config.in.2 @@ -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" -- cgit v1.2.3