diff options
author | Ulf Samuelsson <ulf.samuelsson@atmel.com> | 2009-01-18 10:51:53 +0000 |
---|---|---|
committer | Ulf Samuelsson <ulf.samuelsson@atmel.com> | 2009-01-18 10:51:53 +0000 |
commit | 6da70de5034ae3933c6d072378a8860078686200 (patch) | |
tree | 13db89b68591f78d408d5af49a0e88f0cba94f22 | |
parent | c86f23b7708cb7eeba91a2764210277c78143dca (diff) | |
download | buildroot-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.in | 4 | ||||
-rw-r--r-- | package/liboil/liboil-vfp.patch | 16 | ||||
-rw-r--r-- | package/liboil/liboil.mk | 8 | ||||
-rw-r--r-- | toolchain/Config.in.2 | 13 |
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" |