[Buildroot] [PATCH v2 1/2] package/sdl2: disable altivec built-in function for PowerPC
Sam Bobroff
sam.bobroff at au1.ibm.com
Wed Mar 1 02:13:11 UTC 2017
On Wed, Mar 01, 2017 at 12:24:52AM +0100, Romain Naour wrote:
> As reported in this bug report [1], altivec support in SDL break
> arbitrary C++ code.
>
> Issue reported by test-pkg script while testing supertux package:
> error: could not convert 'true' from 'bool' to '__vector(4) __bool int'
>
> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi/?bug=770670
>
> Signed-off-by: Romain Naour <romain.naour at gmail.com>
> Cc: Sam Bobroff <sam.bobroff at au1.ibm.com>
Hi Romain,
If you want to keep alitvec support on you can probably work around this
problem by using -std=gnu99 (which I used for mpv, see
package/mpv/0002-fix-powerpc64-altivec.patch).
Cheers,
Sam.
> ---
> package/sdl2/sdl2.mk | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/package/sdl2/sdl2.mk b/package/sdl2/sdl2.mk
> index d2ee50d..628d906 100644
> --- a/package/sdl2/sdl2.mk
> +++ b/package/sdl2/sdl2.mk
> @@ -23,6 +23,16 @@ SDL2_CONF_OPTS += \
> # We must enable static build to get compilation successful.
> SDL2_CONF_OPTS += --enable-static
>
> +# From https://bugs.debian.org/cgi-bin/bugreport.cgi/?bug=770670
> +# "The problem lies within SDL_cpuinfo.h. It includes altivec.h, which by
> +# definition provides an unconditional vector, pixel and bool define in
> +# standard-c++ mode. In GNU-c++ mode this names are only defined
> +# context-sensitive by cpp. SDL_cpuinfo.h is included by SDL.h.
> +# Including altivec.h makes arbitrary code break."
> +ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
> +SDL2_CONF_OPTS += --disable-altivec
> +endif
> +
> ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
> SDL2_DEPENDENCIES += udev
> SDL2_CONF_OPTS += --enable-libudev
> --
> 2.9.3
More information about the buildroot
mailing list