diff options
author | dosomder <dosomder@users.noreply.github.com> | 2016-03-13 17:52:24 +0100 |
---|---|---|
committer | dosomder <dosomder@users.noreply.github.com> | 2016-03-14 10:53:20 +0100 |
commit | cd2bca68d45d1da698b9772b9f2577a8530402d3 (patch) | |
tree | 03b9ad44976e50f47801c61765afe24d86035c92 /contrib | |
parent | 3933e100461d2251305b2fc0db10c6adb4c762e4 (diff) | |
download | libarchive-cd2bca68d45d1da698b9772b9f2577a8530402d3.tar.gz |
Add large file support for android
Android doesn't support the macro _FILE_OFFSET_BITS=64 however it does
support a few file64 functions
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/android/Android.mk | 23 | ||||
-rw-r--r-- | contrib/android/include/android_lf.h | 47 |
2 files changed, 60 insertions, 10 deletions
diff --git a/contrib/android/Android.mk b/contrib/android/Android.mk index 43620279..b82beab4 100644 --- a/contrib/android/Android.mk +++ b/contrib/android/Android.mk @@ -179,9 +179,7 @@ LOCAL_MODULE := libarchive LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(libarchive_src_files) $(libarchive_host_src_files) LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\" -ifneq ($(strip $(USE_MINGW)),) - LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include -endif +LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive include $(BUILD_HOST_STATIC_LIBRARY) @@ -191,9 +189,7 @@ LOCAL_MODULE_TAGS := optional LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\" LOCAL_SHARED_LIBRARIES := libz-host LOCAL_WHOLE_STATIC_LIBRARIES := libarchive -ifneq ($(strip $(USE_MINGW)),) - LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include -endif +LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive include $(BUILD_HOST_SHARED_LIBRARY) @@ -202,9 +198,7 @@ LOCAL_MODULE := libarchive_fe LOCAL_MODULE_TAGS := optional LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\" LOCAL_SRC_FILES := $(libarchive_fe_src_files) -ifneq ($(strip $(USE_MINGW)),) - LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include -endif +LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive_fe include $(BUILD_HOST_STATIC_LIBRARY) @@ -222,6 +216,7 @@ LOCAL_CFLAGS := -DBSDTAR_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_ LOCAL_SHARED_LIBRARIES := libz-host LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe LOCAL_SRC_FILES := $(bsdtar_src_files) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include include $(BUILD_HOST_EXECUTABLE) include $(CLEAR_VARS) @@ -231,6 +226,7 @@ LOCAL_CFLAGS := -DBSDCPIO_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM LOCAL_SHARED_LIBRARIES := libz-host LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe LOCAL_SRC_FILES := $(bsdcpio_src_files) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include include $(BUILD_HOST_EXECUTABLE) include $(CLEAR_VARS) @@ -240,6 +236,7 @@ LOCAL_CFLAGS := -DBSDCAT_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_C LOCAL_SHARED_LIBRARIES := libz-host LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe LOCAL_SRC_FILES := $(bsdcat_src_files) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include include $(BUILD_HOST_EXECUTABLE) @@ -248,8 +245,9 @@ include $(CLEAR_VARS) LOCAL_MODULE := libarchive LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(libarchive_src_files) -LOCAL_STATIC_LIBRARIES := libz +LOCAL_STATIC_LIBRARIES := libz liblz4 LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\" +LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive include $(BUILD_STATIC_LIBRARY) @@ -261,6 +259,7 @@ LOCAL_C_INCLUDES := LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\" LOCAL_SHARED_LIBRARIES := libz LOCAL_WHOLE_STATIC_LIBRARIES := libarchive +LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive include $(BUILD_SHARED_LIBRARY) @@ -269,6 +268,7 @@ LOCAL_MODULE := libarchive_fe LOCAL_MODULE_TAGS := optional LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\" LOCAL_SRC_FILES := $(libarchive_fe_src_files) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive_fe include $(BUILD_STATIC_LIBRARY) @@ -280,6 +280,7 @@ LOCAL_CFLAGS := -DBSDTAR_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_ LOCAL_SHARED_LIBRARIES := libz LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe LOCAL_SRC_FILES := $(bsdtar_src_files) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/libarchive $(LOCAL_PATH)/libarchive_fe $(LOCAL_PATH)/contrib/android/include include $(BUILD_EXECUTABLE) include $(CLEAR_VARS) @@ -289,6 +290,7 @@ LOCAL_CFLAGS := -DBSDCPIO_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM LOCAL_SHARED_LIBRARIES := libz LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe LOCAL_SRC_FILES := $(bsdcpio_src_files) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/libarchive $(LOCAL_PATH)/libarchive_fe $(LOCAL_PATH)/contrib/android/include include $(BUILD_EXECUTABLE) include $(CLEAR_VARS) @@ -298,6 +300,7 @@ LOCAL_CFLAGS := -DBSDCAT_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_C LOCAL_SHARED_LIBRARIES := libz LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe LOCAL_SRC_FILES := $(bsdcat_src_files) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/libarchive $(LOCAL_PATH)/libarchive_fe $(LOCAL_PATH)/contrib/android/include include $(BUILD_EXECUTABLE) endif diff --git a/contrib/android/include/android_lf.h b/contrib/android/include/android_lf.h new file mode 100644 index 00000000..3c5475e3 --- /dev/null +++ b/contrib/android/include/android_lf.h @@ -0,0 +1,47 @@ +/*
+ * Macros for file64 functions
+ *
+ * Android does not support the macro _FILE_OFFSET_BITS=64
+ * As of android-21 it does however support many file64 functions
+*/
+
+#ifndef ARCHIVE_ANDROID_LF_H_INCLUDED
+#define ARCHIVE_ANDROID_LF_H_INCLUDED
+
+#if __ANDROID_API__ > 20
+
+#include <dirent.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/statvfs.h>
+#include <sys/types.h>
+#include <sys/vfs.h>
+
+//dirent.h
+#define readdir_r readdir64_r
+#define readdir readdir64
+#define dirent dirent64
+//fcntl.h
+#define openat openat64
+#define open open64
+#define mkstemp mkstemp64
+//unistd.h
+#define lseek lseek64
+#define ftruncate ftruncate64
+//sys/stat.h
+#define fstatat fstatat64
+#define fstat fstat64
+#define lstat lstat64
+#define stat stat64
+//sys/statvfs.h
+#define fstatvfs fstatvfs64
+#define statvfs statvfs64
+//sys/types.h
+#define off_t off64_t
+//sys/vfs.h
+#define fstatfs fstatfs64
+#define statfs statfs64
+#endif
+
+#endif /* ARCHIVE_ANDROID_LF_H_INCLUDED */
|