file/fdsrc: use struct stat64 on android to match stat64()
authorMatthew Waters <matthew@centricular.com>
Wed, 28 Aug 2019 05:19:54 +0000 (15:19 +1000)
committerMatthew Waters <matthew@centricular.com>
Wed, 28 Aug 2019 05:46:33 +0000 (15:46 +1000)
Fixes android werror failures:

../plugins/elements/gstfdsrc.c:244:25: error: incompatible pointer types passing 'struct stat *' to parameter of type 'struct stat64 *' [-Werror,-Wincompatible-pointer-types]
    if (fstat (src->fd, &stat_results) < 0)
                        ^~~~~~~~~~~~~
/home/matt/Projects/cerbero/build/android-ndk-18/sysroot/usr/include/sys/stat.h:159:38: note: passing argument to parameter '__buf' here
int fstat64(int __fd, struct stat64* __buf) __RENAME_STAT64(fstat, 3, 21);
                                     ^
../plugins/elements/gstfdsrc.c:560:23: error: incompatible pointer types passing 'struct stat *' to parameter of type 'struct stat64 *' [-Werror,-Wincompatible-pointer-types]
  if (fstat (src->fd, &stat_results) < 0)
                      ^~~~~~~~~~~~~
/home/matt/Projects/cerbero/build/android-ndk-18/sysroot/usr/include/sys/stat.h:159:38: note: passing argument to parameter '__buf' here
int fstat64(int __fd, struct stat64* __buf) __RENAME_STAT64(fstat, 3, 21);
                                     ^

  if (fstat (fd, &stat_results) < 0)
                 ^~~~~~~~~~~~~
/home/matt/Projects/cerbero/build/android-ndk-18/sysroot/usr/include/sys/stat.h:159:38: note: passing argument to parameter '__buf' here
int fstat64(int __fd, struct stat64* __buf) __RENAME_STAT64(fstat, 3, 21);
                                     ^

  if (fstat (src->fd, &stat_results) < 0)
                      ^~~~~~~~~~~~~
../../../../../android-ndk-18/sysroot/usr/include/sys/stat.h:159:38: note: passing argument to parameter '__buf' here
int fstat64(int __fd, struct stat64* __buf) __RENAME_STAT64(fstat, 3, 21);
                                     ^
../plugins/elements/gstfilesrc.c:477:23: error: incompatible pointer types passing 'struct stat *' to parameter of type 'struct stat64 *' [-Werror,-Wincompatible-pointer-types]
  if (fstat (src->fd, &stat_results) < 0)
                      ^~~~~~~~~~~~~
../../../../../android-ndk-18/sysroot/usr/include/sys/stat.h:159:38: note: passing argument to parameter '__buf' here
int fstat64(int __fd, struct stat64* __buf) __RENAME_STAT64(fstat, 3, 21);
                                     ^

plugins/elements/gstfdsink.c
plugins/elements/gstfdsrc.c
plugins/elements/gstfilesrc.c

index 8f9996f2934ab344f94d4d95ebf923e16cb7c4d1..be5ae28d4115cabdedd9695b982fd223d4fde68f 100644 (file)
 #define off_t guint64
 #endif
 
+#define struct_stat struct stat
+
 #if defined(__BIONIC__)         /* Android */
 #if defined(__ANDROID_API__) && __ANDROID_API__ >= 21
 #undef fstat
 #define fstat fstat64
+#undef struct_stat
+#define struct_stat struct stat64
 #endif
 #endif
 
@@ -327,7 +331,7 @@ gst_fd_sink_render (GstBaseSink * bsink, GstBuffer * buffer)
 static gboolean
 gst_fd_sink_check_fd (GstFdSink * fdsink, int fd, GError ** error)
 {
-  struct stat stat_results;
+  struct_stat stat_results;
   off_t result;
 
   /* see that it is a valid file descriptor */
index e08e90d88e581635125f4fe9df8d1699df4c88e5..77017e2775531fd4a9826941de722898bfd26a6c 100644 (file)
 
 #include "gstfdsrc.h"
 
+#define struct_stat struct stat
+
 #ifdef __BIONIC__               /* Android */
 #if defined(__ANDROID_API__) && __ANDROID_API__ >= 21
 #undef fstat
 #define fstat fstat64
+#undef struct_stat
+#define struct_stat struct stat64
 #endif
 #endif
 
@@ -208,7 +212,7 @@ gst_fd_src_dispose (GObject * obj)
 static void
 gst_fd_src_update_fd (GstFdSrc * src, guint64 size)
 {
-  struct stat stat_results;
+  struct_stat stat_results;
 
   GST_DEBUG_OBJECT (src, "fdset %p, old_fd %d, new_fd %d", src->fdset, src->fd,
       src->new_fd);
@@ -544,7 +548,7 @@ static gboolean
 gst_fd_src_get_size (GstBaseSrc * bsrc, guint64 * size)
 {
   GstFdSrc *src = GST_FD_SRC (bsrc);
-  struct stat stat_results;
+  struct_stat stat_results;
 
   if (src->size != -1) {
     *size = src->size;
index 76ab12cb4db13dff846b702ce2f32f9a1ba20902..d7888aeffec18acceef28cb9d9301a798e42e685 100644 (file)
 #  include <unistd.h>
 #endif
 
+#define struct_stat struct stat
+
 #ifdef __BIONIC__               /* Android */
 #if defined(__ANDROID_API__) && __ANDROID_API__ >= 21
 #undef fstat
 #define fstat fstat64
+#undef struct_stat
+#define struct_stat struct stat64
 #endif
 #endif
 
@@ -430,7 +434,7 @@ gst_file_src_is_seekable (GstBaseSrc * basesrc)
 static gboolean
 gst_file_src_get_size (GstBaseSrc * basesrc, guint64 * size)
 {
-  struct stat stat_results;
+  struct_stat stat_results;
   GstFileSrc *src;
 
   src = GST_FILE_SRC (basesrc);
@@ -460,7 +464,7 @@ static gboolean
 gst_file_src_start (GstBaseSrc * basesrc)
 {
   GstFileSrc *src = GST_FILE_SRC (basesrc);
-  struct stat stat_results;
+  struct_stat stat_results;
 
   if (src->filename == NULL || src->filename[0] == '\0')
     goto no_filename;