Permalink
Browse files

[ios] - fix compilation off ffmpeg with newest Xcode build tools on m…

…ountain lion. Thx to M. Rullgard from the libav team. This still doesn't allow us to build for ios on mountain lion due to strange clangification in our darwin buildsys
  • Loading branch information...
1 parent 4d21975 commit 748fb2dca3624c4c148f7ca7f55f3f66e1556316 @Memphiz Memphiz committed Aug 3, 2012
@@ -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")
@@ -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 <mans at mansr.com>
+
+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

0 comments on commit 748fb2d

Please sign in to comment.