mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
xen/flask: Drop the gen-policy.py script
The script is Python 2 specific, and fails with string/binary issues with
Python 3:
Traceback (most recent call last):
File "gen-policy.py", line 14, in <module>
for char in sys.stdin.read():
File "/usr/lib/python3.5/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8c in position 0: invalid start byte
Fixing the script to be compatible isn't hard, but using python here is
wasteful. Drop the script entirely, and write an equivelent flask-policy.S
instead. This removes the need for a $(PYTHON) and $(CC) pass.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Acked-by: Julien Grall <julien@xen.org>
Release-acked-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
1 parent
4935a5433d
commit
8d5671eb31
5 files changed
+30
-27
No files matched your search
@@ -21,6 +21,12 @@
|
||||
label: .asciz msg; \
|
||||
.popsection
|
||||
|
||||
#define ASM_INT(label, val) \
|
||||
.p2align 2; \
|
||||
label: .long (val); \
|
||||
.size label, . - label; \
|
||||
.type label, %object
|
||||
|
||||
#endif /* __ARM_ASM_DEFNS_H__ */
|
||||
/*
|
||||
* Local variables:
|
||||
|
||||
@@ -386,4 +386,10 @@ static always_inline void stac(void)
|
||||
4: .p2align 2 ; \
|
||||
.popsection
|
||||
|
||||
#define ASM_INT(label, val) \
|
||||
.p2align 2; \
|
||||
label: .long (val); \
|
||||
.size label, . - label; \
|
||||
.type label, @object
|
||||
|
||||
#endif /* __X86_ASM_DEFNS_H__ */
|
||||
@@ -27,7 +27,8 @@ $(FLASK_H_FILES): $(FLASK_H_DEPEND)
|
||||
$(AV_H_FILES): $(AV_H_DEPEND)
|
||||
$(CONFIG_SHELL) policy/mkaccess_vector.sh $(AWK) $(AV_H_DEPEND)
|
||||
|
||||
obj-$(CONFIG_XSM_FLASK_POLICY) += policy.o
|
||||
obj-bin-$(CONFIG_XSM_FLASK_POLICY) += flask-policy.o
|
||||
flask-policy.o: policy.bin
|
||||
|
||||
FLASK_BUILD_DIR := $(CURDIR)
|
||||
POLICY_SRC := $(FLASK_BUILD_DIR)/xenpolicy-$(XEN_FULLVERSION)
|
||||
@@ -36,9 +37,6 @@ policy.bin: FORCE
|
||||
$(MAKE) -f $(XEN_ROOT)/tools/flask/policy/Makefile.common -C $(XEN_ROOT)/tools/flask/policy FLASK_BUILD_DIR=$(FLASK_BUILD_DIR)
|
||||
cmp -s $(POLICY_SRC) $@ || cp $(POLICY_SRC) $@
|
||||
|
||||
policy.c: policy.bin gen-policy.py
|
||||
$(PYTHON) gen-policy.py < $< > $@
|
||||
|
||||
.PHONY: clean
|
||||
clean::
|
||||
rm -f $(ALL_H_FILES) *.o $(DEPS_RM) policy.* $(POLICY_SRC)
|
||||
@@ -0,0 +1,16 @@
|
||||
#include <asm/asm_defns.h>
|
||||
|
||||
.section .init.rodata, "a", %progbits
|
||||
|
||||
/* const unsigned char xsm_flask_init_policy[] __initconst */
|
||||
.global xsm_flask_init_policy
|
||||
xsm_flask_init_policy:
|
||||
.incbin "policy.bin"
|
||||
.Lend:
|
||||
|
||||
.type xsm_flask_init_policy, %object
|
||||
.size xsm_flask_init_policy, . - xsm_flask_init_policy
|
||||
|
||||
/* const unsigned int __initconst xsm_flask_init_policy_size */
|
||||
.global xsm_flask_init_policy_size
|
||||
ASM_INT(xsm_flask_init_policy_size, .Lend - xsm_flask_init_policy)
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
import sys
|
||||
|
||||
policy_size = 0
|
||||
|
||||
sys.stdout.write("""
|
||||
/* This file is autogenerated by gen_policy.py */
|
||||
#include <xen/init.h>
|
||||
#include <xsm/xsm.h>
|
||||
|
||||
const unsigned char xsm_flask_init_policy[] __initconst = {
|
||||
""")
|
||||
|
||||
for char in sys.stdin.read():
|
||||
sys.stdout.write(" 0x%02x," % ord(char))
|
||||
policy_size = policy_size + 1
|
||||
if policy_size % 13 == 0:
|
||||
sys.stdout.write("\n")
|
||||
|
||||
sys.stdout.write("""
|
||||
};
|
||||
const unsigned int __initconst xsm_flask_init_policy_size = %d;
|
||||
""" % policy_size)
|
||||