[vlc-commits] contrib: orc: fix android build

Rafaël Carré git at videolan.org
Thu Jan 5 23:19:03 CET 2012


vlc/vlc-1.2 | branch: master | Rafaël Carré <funman at videolan.org> | Wed Jan  4 20:03:59 2012 -0500| [2df61dd9c0e674c54b505449bb77d4126f839bed] | committer: Jean-Baptiste Kempf

contrib: orc: fix android build

google's gcc doesn't understand 'restrict'. Use __restrict__
(cherry picked from commit 702502969a8af0c166e6a6ee0af5063d8e742e28)

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.2.git/?a=commit;h=2df61dd9c0e674c54b505449bb77d4126f839bed
---

 contrib/src/orc/android.patch |   49 +++++++++++++++++++++++++++++++++++++++++
 contrib/src/orc/rules.mak     |    2 +
 2 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/contrib/src/orc/android.patch b/contrib/src/orc/android.patch
new file mode 100644
index 0000000..4c30a4e
--- /dev/null
+++ b/contrib/src/orc/android.patch
@@ -0,0 +1,49 @@
+diff -ur orc.orig/configure.ac orc/configure.ac
+--- orc.orig/configure.ac	2011-12-28 10:09:52.724224002 -0500
++++ orc/configure.ac	2011-12-28 10:14:06.056224002 -0500
+@@ -67,6 +67,21 @@
+    )
+ AC_SUBST(LIBRT)
+ 
++HAVE_ANDROID=0
++AC_MSG_CHECKING([for an Android system])
++    AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
++                [[#ifndef __ANDROID__
++# error Not Android
++#endif
++                ]],[[;]])
++            ],[
++            HAVE_ANDROID="1"
++            AC_MSG_RESULT([yes])
++            ],[
++            AC_MSG_RESULT([no])
++            ])
++test "${HAVE_ANDROID}" = "1" && AC_DEFINE([ORC_RESTRICT],[__restrict__], [restrict keyword])
++
+ AC_CACHE_CHECK(for monotonic clocks,
+     orc_cv_monotonic_clock,AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+ #include <time.h>
+diff -ur orc.orig/orc/orcfunctions.h orc/orc/orcfunctions.h
+--- orc.orig/orc/orcfunctions.h	2011-12-28 10:09:52.736224002 -0500
++++ orc/orc/orcfunctions.h	2011-12-28 10:15:01.216224002 -0500
+@@ -58,7 +58,7 @@
+ typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;
+ #endif
+ #ifndef ORC_RESTRICT
+-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
++#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && !defined(__ANDROID__)
+ #define ORC_RESTRICT restrict
+ #elif defined(__GNUC__) && __GNUC__ >= 4
+ #define ORC_RESTRICT __restrict__
+diff -ru orc.orig/orc/orcprogram-c.c orc/orc/orcprogram-c.c
+--- orc.orig/orc/orcprogram-c.c	2011-12-28 10:18:36.624224002 -0500
++++ orc/orc/orcprogram-c.c	2011-12-28 10:19:12.232224002 -0500
+@@ -76,7 +76,7 @@
+     "typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;\n"
+     "#endif\n"
+     "#ifndef ORC_RESTRICT\n"
+-    "#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L\n"
++    "#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && !defined(__ANDROID__)\n"
+     "#define ORC_RESTRICT restrict\n"
+     "#elif defined(__GNUC__) && __GNUC__ >= 4\n"
+     "#define ORC_RESTRICT __restrict__\n"
diff --git a/contrib/src/orc/rules.mak b/contrib/src/orc/rules.mak
index 52347d7..13007e2 100644
--- a/contrib/src/orc/rules.mak
+++ b/contrib/src/orc/rules.mak
@@ -16,10 +16,12 @@ $(TARBALLS)/orc-$(ORC_VERSION).tar.gz:
 orc: orc-$(ORC_VERSION).tar.gz .sum-orc
 	$(UNPACK)
 	$(APPLY) $(SRC)/orc/orc-stdint.patch
+	$(APPLY) $(SRC)/orc/android.patch
 	$(UPDATE_AUTOCONFIG)
 	$(MOVE)
 
 .orc: orc
+	$(RECONF)
 	cd $< && $(HOSTVARS) ./configure $(HOSTCONF)
 	cd $< && $(MAKE) install
 	touch $@



More information about the vlc-commits mailing list