diff --git a/packages/multimedia/ffmpeg/patches/ffmpeg-0.10.4-0031-ARM-vp56-allow-inline-asm-to-build-with-clang.patch b/packages/multimedia/ffmpeg/patches/ffmpeg-0.10.4-0031-ARM-vp56-allow-inline-asm-to-build-with-clang.patch new file mode 100644 index 0000000000..994be915e2 --- /dev/null +++ b/packages/multimedia/ffmpeg/patches/ffmpeg-0.10.4-0031-ARM-vp56-allow-inline-asm-to-build-with-clang.patch @@ -0,0 +1,56 @@ +#The clang integrated assembler does not support pre-UAL syntax, +#while gcc requires pre-UAL syntax for ARM code. A patch[1] for +#clang to support the old syntax as well has been ignored since +#January. +# +#This patch chooses the syntax appropriate for each compiler, +#allowing both to build the code. Notably, this change allows +#building for iphone with the latest Apple Xcode update. +# +#[1] http://llvm.org/bugs/show_bug.cgi?id=11855 +# +#Signed-off-by: Mans Rullgard + +diff --git a/libavcodec/arm/vp56_arith.h b/libavcodec/arm/vp56_arith.h +index ef30ffe..d1a8837 100644 +--- a/libavcodec/arm/vp56_arith.h ++++ b/libavcodec/arm/vp56_arith.h +@@ -29,6 +29,14 @@ + # define T(x) + #endif + ++#if CONFIG_THUMB || defined __clang__ ++# define L(x) ++# define U(x) x ++#else ++# define L(x) x ++# define U(x) ++#endif ++ + #if HAVE_ARMV6 && HAVE_INLINE_ASM + + #define vp56_rac_get_prob vp56_rac_get_prob_armv6 +@@ -42,8 +50,8 @@ static inline int vp56_rac_get_prob_armv6(VP56RangeCoder *c, int pr) + __asm__ ("adds %3, %3, %0 \n" + "itt cs \n" + "cmpcs %7, %4 \n" +- A("ldrcsh %2, [%4], #2 \n") +- T("ldrhcs %2, [%4], #2 \n") ++ L("ldrcsh %2, [%4], #2 \n") ++ U("ldrhcs %2, [%4], #2 \n") + "rsb %0, %6, #256 \n" + "smlabb %0, %5, %6, %0 \n" + T("itttt cs \n") +@@ -80,8 +88,8 @@ static inline int vp56_rac_get_prob_branchy_armv6(VP56RangeCoder *c, int pr) + __asm__ ("adds %3, %3, %0 \n" + "itt cs \n" + "cmpcs %7, %4 \n" +- A("ldrcsh %2, [%4], #2 \n") +- T("ldrhcs %2, [%4], #2 \n") ++ L("ldrcsh %2, [%4], #2 \n") ++ U("ldrhcs %2, [%4], #2 \n") + "rsb %0, %6, #256 \n" + "smlabb %0, %5, %6, %0 \n" + T("itttt cs \n") +-- +1.7.11.1