From 89e053f83db596c9263fd9d8cae6f4e15a9b4d49 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=A5ns=20Rullg=C3=A5rd?= <mans@mansr.com>
Date: Wed, 15 Jul 2009 18:33:12 +0000
Subject: [PATCH] Require aligned memory for everything that needs it

Altivec, NEON, and SSE require more alignment than standard malloc()
guarantees, whereas MMX does not.  Update checks to reflect this.

Originally committed as revision 19438 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 configure | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/configure b/configure
index 8292e6b3f45..d7acfdb2db7 100755
--- a/configure
+++ b/configure
@@ -1040,6 +1040,8 @@ sse_deps="mmx"
 ssse3_deps="sse"
 vis_deps="sparc"
 
+need_memalign="altivec neon sse"
+
 # decoders / encoders / hardware accelerators
 aac_decoder_select="fft mdct"
 ac3_decoder_select="fft mdct"
@@ -1668,21 +1670,21 @@ case $target_os in
         oss_outdev_extralibs="-lossaudio"
         ;;
     openbsd)
-        disable need_memalign
+        enable malloc_aligned
         LIBOBJFLAGS='$(PIC)'
         SHFLAGS='-shared'
         oss_indev_extralibs="-lossaudio"
         oss_outdev_extralibs="-lossaudio"
         ;;
     freebsd|dragonfly)
-        disable need_memalign
+        enable malloc_aligned
         ;;
     bsd/os)
         osextralibs="-lpoll -lgnugetopt"
         strip="strip -d"
         ;;
     darwin)
-        disable need_memalign
+        enable malloc_aligned
         SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR) -Wl,-read_only_relocs,suppress'
         strip="strip -x"
         FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
@@ -1697,7 +1699,7 @@ case $target_os in
         target_os=mingw32
         LIBTARGET=i386
         if enabled x86_64; then
-            disable need_memalign
+            enable malloc_aligned
             LIBTARGET=x64
         elif enabled arm; then
             LIBTARGET=arm
@@ -1840,8 +1842,6 @@ enabled version3 && { enabled gpl && enable gplv3 || enable lgplv3; }
 
 check_deps $ARCH_EXT_LIST
 
-test -z "$need_memalign" && need_memalign="$mmx"
-
 #Darwin CC versions
 if test $target_os = darwin; then
     if enabled xlc; then
@@ -2091,7 +2091,8 @@ check_header vdpau/vdpau.h
 check_header vdpau/vdpau_x11.h
 check_header X11/extensions/XvMClib.h
 
-if enabled sse && { ! enabled_any memalign memalign_hack posix_memalign && enabled need_memalign ;} ; then
+if ! enabled_any memalign memalign_hack posix_memalign malloc_aligned &&
+     enabled_any $need_memalign ; then
     die "Error, no aligned memory allocator but SSE enabled, disable it or use --enable-memalign-hack."
 fi
 
-- 
GitLab