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