From 35a4212180272b5dd648b99c07a692aab19a5e67 Mon Sep 17 00:00:00 2001
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date: Tue, 26 Jun 2018 17:39:38 +0300
Subject: lib: glob: Fix compilation on Android

The glibc glob() implementation doesn't compile on Android due to
missing support for getlogin_r (before Android ABI 28) and to missing
__THROW, __THROWNL and __attribute_noinline__ macros.

getlogin_r is only used to implement support for the '~' path component
which we don't use in the uvc-gadget library, so we can compile it out.
The three macros can safely be defined as no-op.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 lib/compat/glob.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

(limited to 'lib')

diff --git a/lib/compat/glob.c b/lib/compat/glob.c
index e48b030..28fd48e 100644
--- a/lib/compat/glob.c
+++ b/lib/compat/glob.c
@@ -23,6 +23,12 @@
 #define __glibc_unlikely(x)		x
 #define __libc_use_alloca(x)		0
 #define alloca_account(size, avar)	alloca(size)
+#ifndef __THROWNL
+#define __THROWNL
+#endif
+#ifndef __attribute_noinline__
+#define __attribute_noinline__
+#endif
 
 #include <glob.h>
 
@@ -604,7 +610,7 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
 	}
     }
 
-#ifndef VMS
+#if !defined(VMS) && !defined(ANDROID)
   if ((flags & (GLOB_TILDE|GLOB_TILDE_CHECK)) && dirname[0] == '~')
     {
       if (dirname[1] == '\0' || dirname[1] == '/'
@@ -973,7 +979,7 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
 	}
 # endif	/* Not Amiga && not WINDOWS32.  */
     }
-#endif	/* Not VMS.  */
+#endif	/* Not VMS && not ANDROID.  */
 
   /* Now test whether we looked for "~" or "~NAME".  In this case we
      can give the answer now.  */
-- 
cgit v1.2.3