* gnu/packages/android.scm: New file. * gnu/packages/patches/libbase-fix-includes.patch: New file. * gnu/packages/patches/libbase-use-own-logging.patch: New file. * gnu/local.mk (GNU_SYSTEM_MODULES, dist_patch_DATA): Add them. Co-Authored-By: Marius Bakke <mbakke@fastmail.com>
		
			
				
	
	
		
			71 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
This patch fixes the build of adb on linux.
 | 
						|
 | 
						|
Copied from archlinux repository:
 | 
						|
https://git.archlinux.org/svntogit/community.git/tree/trunk/fix_build.patch?h=packages/android-tools
 | 
						|
 | 
						|
diff --git a/adb/sysdeps.h b/adb/sysdeps.h
 | 
						|
index 75dcc86..867f3ec 100644
 | 
						|
--- a/adb/sysdeps.h
 | 
						|
+++ b/adb/sysdeps.h
 | 
						|
@@ -25,6 +25,7 @@
 | 
						|
 #endif
 | 
						|
 
 | 
						|
 #include <errno.h>
 | 
						|
+#include <sys/syscall.h>
 | 
						|
 
 | 
						|
 #include <string>
 | 
						|
 #include <vector>
 | 
						|
@@ -831,7 +832,16 @@ static __inline__ int adb_is_absolute_host_path(const char* path) {
 | 
						|
 
 | 
						|
 static __inline__ unsigned long adb_thread_id()
 | 
						|
 {
 | 
						|
-    return (unsigned long)gettid();
 | 
						|
+  // TODO: this function should be merged with GetThreadId
 | 
						|
+#if defined(__BIONIC__)
 | 
						|
+  return gettid();
 | 
						|
+#elif defined(__APPLE__)
 | 
						|
+  return syscall(SYS_thread_selfid);
 | 
						|
+#elif defined(__linux__)
 | 
						|
+  return syscall(__NR_gettid);
 | 
						|
+#elif defined(_WIN32)
 | 
						|
+  return GetCurrentThreadId();
 | 
						|
+#endif
 | 
						|
 }
 | 
						|
 
 | 
						|
 #endif /* !_WIN32 */
 | 
						|
diff --git a/base/errors_unix.cpp b/base/errors_unix.cpp
 | 
						|
index 296995e..48269b6 100644
 | 
						|
--- a/base/errors_unix.cpp
 | 
						|
+++ b/base/errors_unix.cpp
 | 
						|
@@ -17,6 +17,7 @@
 | 
						|
 #include "android-base/errors.h"
 | 
						|
 
 | 
						|
 #include <errno.h>
 | 
						|
+#include <string.h>
 | 
						|
 
 | 
						|
 namespace android {
 | 
						|
 namespace base {
 | 
						|
diff --git a/base/file.cpp b/base/file.cpp
 | 
						|
index da1adba..91a3901 100644
 | 
						|
--- a/base/file.cpp
 | 
						|
+++ b/base/file.cpp
 | 
						|
@@ -20,6 +20,7 @@
 | 
						|
 #include <fcntl.h>
 | 
						|
 #include <sys/stat.h>
 | 
						|
 #include <sys/types.h>
 | 
						|
+#include <string.h>
 | 
						|
 
 | 
						|
 #include <string>
 | 
						|
 
 | 
						|
diff --git a/base/logging.cpp b/base/logging.cpp
 | 
						|
index 1741871..e97c7f1 100644
 | 
						|
--- a/base/logging.cpp
 | 
						|
+++ b/base/logging.cpp
 | 
						|
@@ -21,6 +21,7 @@
 | 
						|
 #include "android-base/logging.h"
 | 
						|
 
 | 
						|
 #include <libgen.h>
 | 
						|
+#include <string.h>
 | 
						|
 
 | 
						|
 // For getprogname(3) or program_invocation_short_name.
 | 
						|
 #if defined(__ANDROID__) || defined(__APPLE__)
 |