sdl_gfx: don't use --enable-mmx on x86_64
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 14 Oct 2012 08:47:56 +0000 (08:47 +0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Sun, 14 Oct 2012 18:51:35 +0000 (20:51 +0200)
Even though the MMX instructions are available on x86_64 processors,
the MMX code in sdl_gfx is written in IA32-specific assembly code, and
therefore does not build on x86_64. It generates the following build
issues:

SDL_imageFilter.c: Assembler messages:
SDL_imageFilter.c:34: Error: `pusha' is not supported in 64-bit mode
SDL_imageFilter.c:38: Error: `popa' is not supported in 64-bit mode
SDL_imageFilter.c:77: Error: `pusha' is not supported in 64-bit mode
SDL_imageFilter.c:93: Error: `popa' is not supported in 64-bit mode
[...]

We fix this by only enabling MMX support in this package when the
processor supports MMX *and* it is a IA32 compatible processor.

Fixes

  http://autobuild.buildroot.org/results/b9efc611f5da487079b6be37bb7a41a3198d63b9/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/sdl_gfx/sdl_gfx.mk

index e3ff6306eb5f06fd32ca389871c19f6dda8cb0b6..c1c7f910120c65d68c38d0f6ceaf123ac856387e 100644 (file)
@@ -11,7 +11,14 @@ SDL_GFX_DEPENDENCIES = sdl
 SDL_GFX_CONF_OPT = \
        --with-sdl-prefix=$(STAGING_DIR)/usr \
        --disable-sdltest \
-       --enable-static \
-       $(if $(BR2_X86_CPU_HAS_MMX),--enable-mmx,--disable-mmx)
+       --enable-static
+
+# Even though x86_64 processors support MMX, the MMX-specific assembly
+# code in sdl_gfx is IA32 specific, and does not build for x86_64.
+ifeq ($(BR2_i386)$(BR2_X86_CPU_HAS_MMX),yy)
+SDL_GFX_CONF_OPT += --enable-mmx
+else
+SDL_GFX_CONF_OPT += --disable-mmx
+endif
 
 $(eval $(autotools-package))