Merge "Compile 'minijail0' on Brillo/Android."
diff --git a/Android.mk b/Android.mk
index 021fef0..186e569 100644
--- a/Android.mk
+++ b/Android.mk
@@ -16,7 +16,7 @@
 
 
 # Common variables.
-# ========================================================
+# =========================================================
 libminijailSrcFiles := \
 	bpf.c \
 	libminijail.c \
@@ -35,8 +35,9 @@
 minijailCommonCFlags += -DUSE_SECCOMP_SOFTFAIL
 endif
 
+
 # Static library for generated code.
-# ========================================================
+# =========================================================
 include $(CLEAR_VARS)
 LOCAL_MODULE := libminijail_generated
 
@@ -87,7 +88,7 @@
 
 
 # libminijail shared library for target.
-# ========================================================
+# =========================================================
 include $(CLEAR_VARS)
 LOCAL_MODULE := libminijail
 
@@ -102,7 +103,7 @@
 
 
 # libminijail static library for target.
-# ========================================================
+# =========================================================
 include $(CLEAR_VARS)
 LOCAL_MODULE := libminijail
 
@@ -117,7 +118,7 @@
 
 # libminijail native unit tests. Run with:
 # adb shell /data/nativetest/libminijail_unittest/libminijail_unittest
-# ========================================================
+# =========================================================
 include $(CLEAR_VARS)
 LOCAL_MODULE := libminijail_unittest
 ifdef BRILLO
@@ -141,7 +142,7 @@
 
 # Syscall filtering native unit tests. Run with:
 # adb shell /data/nativetest/syscall_filter_unittest/syscall_filter_unittest
-# ========================================================
+# =========================================================
 include $(CLEAR_VARS)
 LOCAL_MODULE := syscall_filter_unittest
 ifdef BRILLO
@@ -162,7 +163,7 @@
 
 
 # libminijail usage example.
-# ========================================================
+# =========================================================
 include $(CLEAR_VARS)
 LOCAL_MODULE := drop_privs
 LOCAL_MODULE_TAGS := optional
@@ -173,3 +174,23 @@
 
 LOCAL_SHARED_LIBRARIES := libbase libminijail
 include $(BUILD_EXECUTABLE)
+
+
+# minijail0 executable.
+# This is not currently used on Brillo/Android,
+# but it's convenient to be able to build it.
+# =========================================================
+include $(CLEAR_VARS)
+LOCAL_MODULE := minijail0
+LOCAL_MODULE_TAGS := optional
+LOCAL_CFLAGS := \
+	$(minijailCommonCFlags) -Wno-missing-field-initializers \
+	-DPRELOADPATH=\"/invalidminijailpreload.so\"
+LOCAL_CLANG := true
+LOCAL_SRC_FILES := \
+	elfparse.c \
+	minijail0.c \
+
+LOCAL_STATIC_LIBRARIES := libminijail_generated
+LOCAL_SHARED_LIBRARIES := $(minijailCommonLibraries) libminijail
+include $(BUILD_EXECUTABLE)
diff --git a/elfparse.h b/elfparse.h
index 6b65eae..599eb11 100644
--- a/elfparse.h
+++ b/elfparse.h
@@ -24,7 +24,9 @@
  * The compiler could mess with aligmment depending on arch
  * so I'm redefining them here and packing them to 1-byte alignment.
  */
+#if !defined(EI_NIDENT)
 #define EI_NIDENT (16)
+#endif
 #pragma pack(push)
 #pragma pack(1)
 typedef struct
diff --git a/minijail0.c b/minijail0.c
index 58c6063..9b7260d 100644
--- a/minijail0.c
+++ b/minijail0.c
@@ -342,7 +342,7 @@
 int main(int argc, char *argv[])
 {
 	struct minijail *j = minijail_new();
-	char *dl_mesg = NULL;
+	const char *dl_mesg = NULL;
 	int exit_immediately = 0;
 	char *program_path;
 	int consumed = parse_args(j, argc, argv, &exit_immediately);