Module: Mesa
Branch: master
Commit: 27b888794624225343287e57f5fcea63f94850b3
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=27b888794624225343287e57f5fcea63f94850b3

Author: Eric Anholt <e...@anholt.net>
Date:   Tue Sep 22 13:02:37 2020 -0700

android: Add pre-4.7 Android kernel compatibility to our libsync header.

The downstream Android kernels had a different API than was merged
upstream, and libsync on Android abstracts over that for us.  Use their
sync_merge() and sync_wait(), at the cost of linking against libsync
(which Android.mk and meson both do).

Reviewed-by: Kristian H. Kristensen <hoegsb...@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6821>

---

 src/util/libsync.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/util/libsync.h b/src/util/libsync.h
index f1a2f96d36b..2e9f499200b 100644
--- a/src/util/libsync.h
+++ b/src/util/libsync.h
@@ -40,6 +40,14 @@
 extern "C" {
 #endif
 
+#ifdef ANDROID
+/* On Android, rely on the system's libsync instead of rolling our own
+ * sync_wait() and sync_merge().  This gives us compatibility with pre-4.7
+ * Android kernels.
+ */
+#include <android/sync.h>
+#else
+
 #ifndef SYNC_IOC_MERGE
 /* duplicated from linux/sync_file.h to avoid build-time dependency
  * on new (v4.7) kernel headers.  Once distro's are mostly using
@@ -101,6 +109,8 @@ static inline int sync_merge(const char *name, int fd1, int 
fd2)
        return data.fence;
 }
 
+#endif /* !ANDROID */
+
 /* accumulate fd2 into fd1.  If *fd1 is not a valid fd then dup fd2,
  * otherwise sync_merge() and close the old *fd1.  This can be used
  * to implement the pattern:

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to