]> git.sesse.net Git - vlc/commitdiff
libdca: work-around a compiler bug
authorFelix Paul Kühne <fkuehne@videolan.org>
Wed, 31 Dec 2008 19:44:06 +0000 (20:44 +0100)
committerFelix Paul Kühne <fkuehne@videolan.org>
Wed, 31 Dec 2008 19:44:06 +0000 (20:44 +0100)
extras/contrib/src/Makefile
extras/contrib/src/Patches/libdca-llvm-gcc.patch [new file with mode: 0644]

index 647ef28082ab067c867b5200973d42a0eb4f6691..2d28bab739c5cb4746471207a19f0d7e73ff9c24 100644 (file)
@@ -48,9 +48,6 @@ ifdef HAVE_DARWIN_OS
 export CC
 export CXX
 export LD
-export RANLIB
-export AR
-export STRIP
 endif
 
 # ***************************************************************************
@@ -1365,6 +1362,9 @@ libdca-$(LIBDCA_VERSION).tar.bz2:
 
 libdca: libdca-$(LIBDCA_VERSION).tar.bz2
        $(EXTRACT_BZ2)
+ifdef HAVE_DARWIN_9
+       ( cd $@; patch -p0 < ../Patches/libdca-llvm-gcc.patch )
+endif
 
 .dca: libdca
        (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
diff --git a/extras/contrib/src/Patches/libdca-llvm-gcc.patch b/extras/contrib/src/Patches/libdca-llvm-gcc.patch
new file mode 100644 (file)
index 0000000..61862d4
--- /dev/null
@@ -0,0 +1,22 @@
+Index: libdca/parse.c
+===================================================================
+--- libdca/parse.c     (revision 90)
++++ libdca/parse.c     (working copy)
+@@ -1193,11 +1193,14 @@
+         for (k=0;k<16;k++)
+         {
+             B[k] = 0.0;
+-            for (i=0;i<16;i++)
++
++            B[k]+=(raXin[0])*state->cos_mod[j++];
++
++            for (i=1;i<16;i++)
+             {
+-                if(i>0) B[k]+=(raXin[2*i]+raXin[2*i-1])*state->cos_mod[j++];
+-                else B[k]+=(raXin[2*i])*state->cos_mod[j++];
++                B[k]+=(raXin[2*i]+raXin[2*i-1])*state->cos_mod[j++];
+             }
++
+             SUM[k]=A[k]+B[k];
+             DIFF[k]=A[k]-B[k];
+         }