mirror of
https://github.com/SELinuxProject/selinux
synced 2025-01-12 16:39:26 +00:00
checkpolicy: Android/MacOS X build support
Android/MacOS X build support for checkpolicy. Create a Android.mk file for Android build integration. Introduce DARWIN ifdefs for building on MacOS X. Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov> Signed-off-by: Eric Paris <eparis@redhat.com> Acked-by: Dan Walsh <dwalsh@redhat.com>
This commit is contained in:
parent
0eed03e756
commit
da752cabb5
62
checkpolicy/Android.mk
Normal file
62
checkpolicy/Android.mk
Normal file
@ -0,0 +1,62 @@
|
||||
LOCAL_PATH:= $(call my-dir)
|
||||
|
||||
common_src_files := \
|
||||
policy_parse.y \
|
||||
policy_scan.l \
|
||||
queue.c \
|
||||
module_compiler.c \
|
||||
parse_util.c \
|
||||
policy_define.c
|
||||
|
||||
common_cflags := \
|
||||
-Wall -Wshadow -O2 \
|
||||
-pipe -fno-strict-aliasing \
|
||||
-Wno-return-type
|
||||
|
||||
ifeq ($(HOST_OS),darwin)
|
||||
common_cflags += -DDARWIN
|
||||
endif
|
||||
|
||||
common_includes := \
|
||||
$(LOCAL_PATH)/ \
|
||||
$(LOCAL_PATH)/../libsepol/include/ \
|
||||
$(LOCAL_PATH)/../libsepol/src/ \
|
||||
|
||||
##
|
||||
# "-x c" forces the lex/yacc files to be compiled as c
|
||||
# the build system otherwise forces them to be c++
|
||||
yacc_flags := -x c
|
||||
|
||||
|
||||
##
|
||||
# checkpolicy
|
||||
#
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := checkpolicy
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_C_INCLUDES := $(common_includes)
|
||||
LOCAL_CFLAGS := $(yacc_flags) $(common_cflags)
|
||||
LOCAL_SRC_FILES := $(common_src_files) checkpolicy.c
|
||||
LOCAL_STATIC_LIBRARIES := libsepol
|
||||
LOCAL_YACCFLAGS := -v
|
||||
LOCAL_MODULE_CLASS := EXECUTABLES
|
||||
|
||||
include $(BUILD_HOST_EXECUTABLE)
|
||||
|
||||
|
||||
##
|
||||
# checkmodule
|
||||
#
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := checkmodule
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_C_INCLUDES := $(common_includes)
|
||||
LOCAL_CFLAGS := $(yacc_flags) $(common_cflags)
|
||||
LOCAL_SRC_FILES := $(common_src_files) checkmodule.c
|
||||
LOCAL_STATIC_LIBRARIES := libsepol
|
||||
LOCAL_YACCFLAGS := -v
|
||||
LOCAL_MODULE_CLASS := EXECUTABLES
|
||||
|
||||
include $(BUILD_HOST_EXECUTABLE)
|
@ -70,6 +70,10 @@
|
||||
#include <errno.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
#ifdef DARWIN
|
||||
#include <ctype.h>
|
||||
#endif
|
||||
|
||||
#include <sepol/policydb/policydb.h>
|
||||
#include <sepol/policydb/services.h>
|
||||
#include <sepol/policydb/conditional.h>
|
||||
|
@ -4343,8 +4343,14 @@ int define_ipv6_node_context(void)
|
||||
}
|
||||
|
||||
memset(newc, 0, sizeof(ocontext_t));
|
||||
|
||||
#ifdef DARWIN
|
||||
memcpy(&newc->u.node6.addr[0], &addr.s6_addr[0], 16);
|
||||
memcpy(&newc->u.node6.mask[0], &mask.s6_addr[0], 16);
|
||||
#else
|
||||
memcpy(&newc->u.node6.addr[0], &addr.s6_addr32[0], 16);
|
||||
memcpy(&newc->u.node6.mask[0], &mask.s6_addr32[0], 16);
|
||||
#endif
|
||||
|
||||
if (parse_security_context(&newc->context[0])) {
|
||||
free(newc);
|
||||
|
@ -27,7 +27,11 @@
|
||||
|
||||
typedef int (* require_func_t)();
|
||||
|
||||
#ifdef ANDROID
|
||||
#include "policy_parse.h"
|
||||
#else
|
||||
#include "y.tab.h"
|
||||
#endif
|
||||
|
||||
static char linebuf[2][255];
|
||||
static unsigned int lno = 0;
|
||||
@ -43,7 +47,7 @@ unsigned long policydb_lineno = 1;
|
||||
unsigned int policydb_errors = 0;
|
||||
%}
|
||||
|
||||
%option noinput nounput
|
||||
%option noinput nounput noyywrap
|
||||
|
||||
%array
|
||||
letter [A-Za-z]
|
||||
|
Loading…
Reference in New Issue
Block a user