From 89e053f83db596c9263fd9d8cae6f4e15a9b4d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5ns=20Rullg=C3=A5rd?= 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 8292e6b3f4..d7acfdb2db 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