summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSami Tolvanen <samitolvanen@google.com>2015-09-29 13:07:46 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-09-29 13:07:46 +0000
commit482fe9e37737e5d6c7d0a4e0fe303e7d097971aa (patch)
tree23743430e125723a3017f67d8e79542cebdc806d
parent3625af964efa97cc7163f88ff711e67fab57af23 (diff)
parent0403024cd6763fff3a0118b15e68c0f7fe4766d5 (diff)
downloadextras-482fe9e37737e5d6c7d0a4e0fe303e7d097971aa.tar.gz
Merge "fec: enable building on Mac"
-rw-r--r--libfec/Android.mk6
-rw-r--r--libfec/fec_open.cpp9
-rw-r--r--libfec/fec_private.h1
-rw-r--r--verity/fec/Android.mk6
-rw-r--r--verity/fec/image.cpp9
-rw-r--r--verity/fec/image.h1
6 files changed, 22 insertions, 10 deletions
diff --git a/libfec/Android.mk b/libfec/Android.mk
index 4ca563e4..45fb19ec 100644
--- a/libfec/Android.mk
+++ b/libfec/Android.mk
@@ -38,13 +38,13 @@ LOCAL_STATIC_LIBRARIES := \
$(common_static_libraries)
include $(BUILD_STATIC_LIBRARY)
-ifeq ($(HOST_OS),linux)
-
include $(CLEAR_VARS)
LOCAL_CFLAGS := $(common_cflags) -D_GNU_SOURCE -DFEC_NO_KLOG
LOCAL_C_INCLUDES := $(common_c_includes)
LOCAL_CLANG := true
+ifeq ($(HOST_OS),linux)
LOCAL_SANITIZE := integer
+endif
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
LOCAL_MODULE := libfec_host
LOCAL_SRC_FILES := $(common_src_files)
@@ -55,6 +55,4 @@ LOCAL_STATIC_LIBRARIES := \
$(common_static_libraries)
include $(BUILD_HOST_STATIC_LIBRARY)
-endif # HOST_OS == linux
-
include $(LOCAL_PATH)/test/Android.mk
diff --git a/libfec/fec_open.cpp b/libfec/fec_open.cpp
index f25aa7fb..1923406f 100644
--- a/libfec/fec_open.cpp
+++ b/libfec/fec_open.cpp
@@ -14,7 +14,6 @@
* limitations under the License.
*/
-#include <linux/fs.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
@@ -24,6 +23,14 @@ extern "C" {
#include <ext4_sb.h>
}
+#if defined(__linux__)
+ #include <linux/fs.h>
+#elif defined(__APPLE__)
+ #include <sys/disk.h>
+ #define BLKGETSIZE64 DKIOCGETBLOCKCOUNT
+ #define fdatasync(fd) fcntl((fd), F_FULLFSYNC)
+#endif
+
#include "fec_private.h"
/* used by `find_offset'; returns metadata size for a file size `size' and
diff --git a/libfec/fec_private.h b/libfec/fec_private.h
index fab81cfe..21758990 100644
--- a/libfec/fec_private.h
+++ b/libfec/fec_private.h
@@ -31,6 +31,7 @@
#include <unordered_map>
#include <vector>
+#include <utils/Compat.h>
#include <mincrypt/rsa.h>
#include <openssl/sha.h>
#include <fec/io.h>
diff --git a/verity/fec/Android.mk b/verity/fec/Android.mk
index 774878d4..c13f5775 100644
--- a/verity/fec/Android.mk
+++ b/verity/fec/Android.mk
@@ -1,10 +1,10 @@
LOCAL_PATH:= $(call my-dir)
-ifeq ($(HOST_OS),linux)
-
include $(CLEAR_VARS)
LOCAL_CLANG := true
+ifeq ($(HOST_OS),linux)
LOCAL_SANITIZE := integer
+endif
LOCAL_MODULE := fec
LOCAL_SRC_FILES := main.cpp image.cpp
LOCAL_MODULE_TAGS := optional
@@ -21,8 +21,6 @@ LOCAL_CFLAGS += -Wall -Werror -O3
LOCAL_C_INCLUDES += external/fec
include $(BUILD_HOST_EXECUTABLE)
-endif # HOST_OS == linux
-
include $(CLEAR_VARS)
LOCAL_CLANG := true
LOCAL_SANITIZE := integer
diff --git a/verity/fec/image.cpp b/verity/fec/image.cpp
index 7acf4c87..41018158 100644
--- a/verity/fec/image.cpp
+++ b/verity/fec/image.cpp
@@ -26,7 +26,6 @@ extern "C" {
#include <errno.h>
#include <fcntl.h>
#include <getopt.h>
-#include <linux/fs.h>
#include <openssl/sha.h>
#include <pthread.h>
#include <stdbool.h>
@@ -39,6 +38,14 @@ extern "C" {
#endif
#include "image.h"
+#if defined(__linux__)
+ #include <linux/fs.h>
+#elif defined(__APPLE__)
+ #include <sys/disk.h>
+ #define BLKGETSIZE64 DKIOCGETBLOCKCOUNT
+ #define O_LARGEFILE 0
+#endif
+
void image_init(image *ctx)
{
memset(ctx, 0, sizeof(*ctx));
diff --git a/verity/fec/image.h b/verity/fec/image.h
index a7f55530..f235eb58 100644
--- a/verity/fec/image.h
+++ b/verity/fec/image.h
@@ -17,6 +17,7 @@
#ifndef __FEC_H__
#define __FEC_H__
+#include <utils/Compat.h>
#include <fec/io.h>
#include <fec/ecc.h>