summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Samuelsson <ulf.samuelsson@atmel.com>2009-01-18 10:51:53 +0000
committerUlf Samuelsson <ulf.samuelsson@atmel.com>2009-01-18 10:51:53 +0000
commit6da70de5034ae3933c6d072378a8860078686200 (patch)
tree13db89b68591f78d408d5af49a0e88f0cba94f22
parentc86f23b7708cb7eeba91a2764210277c78143dca (diff)
downloadbuildroot-novena-6da70de5034ae3933c6d072378a8860078686200.tar.gz
buildroot-novena-6da70de5034ae3933c6d072378a8860078686200.zip
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.
-rw-r--r--package/Makefile.in4
-rw-r--r--package/liboil/liboil-vfp.patch16
-rw-r--r--package/liboil/liboil.mk8
-rw-r--r--toolchain/Config.in.213
4 files changed, 37 insertions, 4 deletions
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"