[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-4.13 v4 1/3] 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@xxxxxxxxxx> Acked-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> --- CC: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> CC: Juergen Gross <jgross@xxxxxxxx> CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Wei Liu <wl@xxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Julien Grall <julien@xxxxxxx> CC: Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx> v2: * Fix tabs vs spaces issues v3: * Use % rather than @ for progbits/object, for Arm32 build. * Spotted by https://travis-ci.org/andyhhp/xen/builds/622085138 v4: * Introduce and use ASM_INT() to declare something compatible with `int` * Drop .align For 4.13. This is a blocker to our intent to by Py3-clean in this release. Discovered entirely accidently when testing the final patch. --- xen/include/asm-arm/asm_defns.h | 6 ++++++ xen/include/asm-x86/asm_defns.h | 6 ++++++ xen/xsm/flask/Makefile | 6 ++---- xen/xsm/flask/flask-policy.S | 16 ++++++++++++++++ xen/xsm/flask/gen-policy.py | 23 ----------------------- 5 files changed, 30 insertions(+), 27 deletions(-) create mode 100644 xen/xsm/flask/flask-policy.S delete mode 100644 xen/xsm/flask/gen-policy.py diff --git a/xen/include/asm-arm/asm_defns.h b/xen/include/asm-arm/asm_defns.h index 3f21def0ab..b4fbcdae1d 100644 --- a/xen/include/asm-arm/asm_defns.h +++ b/xen/include/asm-arm/asm_defns.h @@ -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: diff --git a/xen/include/asm-x86/asm_defns.h b/xen/include/asm-x86/asm_defns.h index c4f49a35d3..370f239c50 100644 --- a/xen/include/asm-x86/asm_defns.h +++ b/xen/include/asm-x86/asm_defns.h @@ -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__ */ diff --git a/xen/xsm/flask/Makefile b/xen/xsm/flask/Makefile index f5ffab1226..7c3f381287 100644 --- a/xen/xsm/flask/Makefile +++ b/xen/xsm/flask/Makefile @@ -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) diff --git a/xen/xsm/flask/flask-policy.S b/xen/xsm/flask/flask-policy.S new file mode 100644 index 0000000000..e9308aa175 --- /dev/null +++ b/xen/xsm/flask/flask-policy.S @@ -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) diff --git a/xen/xsm/flask/gen-policy.py b/xen/xsm/flask/gen-policy.py deleted file mode 100644 index c7501e4614..0000000000 --- a/xen/xsm/flask/gen-policy.py +++ /dev/null @@ -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) -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |