From 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf Mon Sep 17 00:00:00 2001 From: takeshi_hoshina Date: Mon, 2 Nov 2020 11:07:33 +0900 Subject: basesystem-jj recipes --- .../xen/files/xen-disable-sse-before-inlines.patch | 140 --------------------- 1 file changed, 140 deletions(-) delete mode 100644 external/meta-virtualization/recipes-extended/xen/files/xen-disable-sse-before-inlines.patch (limited to 'external/meta-virtualization/recipes-extended/xen/files/xen-disable-sse-before-inlines.patch') diff --git a/external/meta-virtualization/recipes-extended/xen/files/xen-disable-sse-before-inlines.patch b/external/meta-virtualization/recipes-extended/xen/files/xen-disable-sse-before-inlines.patch deleted file mode 100644 index 54a28ee4..00000000 --- a/external/meta-virtualization/recipes-extended/xen/files/xen-disable-sse-before-inlines.patch +++ /dev/null @@ -1,140 +0,0 @@ -From 6d50ae155c0f736aa6239eabf1bc8c8e3704742d Mon Sep 17 00:00:00 2001 -From: Christopher Clark -Date: Fri, 21 Sep 2018 08:28:02 -0700 -Subject: [PATCH v2] fuzz, test x86_emulator: disable sse before including - always_inline fns -To: xen-devel@lists.xenproject.org, - jbeulich@suse.com -Cc: ian.jackson@eu.citrix.com, - wei.liu2@citrix.com, - andrew.cooper3@citrix.com - -Workaround for compiler rejection of SSE-using always_inlines defined before -SSE is disabled. - -Compiling with _FORTIFY_SOURCE or higher levels of optimization enabled -will always_inline several library fns (memset, memcpy, ...) -(with gcc 8.2.0 and glibc 2.28). - -In fuzz and x86_emulator test, the compiler is instructed not -to generate SSE instructions via: #pragma GCC target("no-sse") -because those registers are needed for use by the workload. - -The combination above causes compilation failure as the inline functions -use those instructions. This is resolved by reordering the inclusion of - and to after the pragma disabling SSE generation. - -It would be preferable to locate the no-sse pragma within x86-emulate.h at the -top of the file, prior to including any other headers; unfortunately doing so -before causes compilation failure due to declaration of 'atof' with: - "SSE register return with SSE disabled". -Fortunately there is no (known) current dependency on any always_inline -SSE-inclined function declared in or any of its dependencies, so the -pragma is therefore issued immediately after inclusion of with a -comment introduced to explain its location there. - -Add compile-time checks for unwanted prior inclusion of and -, which are the two headers that provide the library functions that -are handled with wrappers and listed within "x86-emulate.h" as ones "we think -might access any of the FPU state". -* Use standard-defined "EOF" macro to detect prior inclusion. -* Use "_STRING_H" (non-standardized guard macro) as best-effort - for detection of prior inclusion. This is non-universally - viable but will provide error output on common GLIBC systems, so - provides some defensive coverage. - -Adds conditional #include to x86-emulate.h because fwrite, printf, -etc. are referenced when WRAP has been defined. - -Signed-off-by: Christopher Clark -Reviewed-by: Jan Beulich ---- - tools/fuzz/x86_instruction_emulator/fuzz-emul.c | 10 +++++++-- - tools/tests/x86_emulator/wrappers.c | 1 - - tools/tests/x86_emulator/x86-emulate.h | 28 +++++++++++++++++++++++-- - 3 files changed, 34 insertions(+), 5 deletions(-) - -diff --git a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c -index 03a2473..0ffd0fb 100644 ---- a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c -+++ b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c -@@ -6,9 +6,7 @@ - #include - #include - #include --#include - #include --#include - #include - #include - #include -@@ -16,6 +14,14 @@ - #include - - #include "x86-emulate.h" -+/* -+ * include "x86-emulate.h" prior to and : -+ * x86-emulate.h disables use of SSE registers, while and -+ * declare functions that may be always_inline and use those registers -+ * unless they have been disabled earlier, which can fail to compile. -+ */ -+#include -+#include - #include "fuzz-emul.h" - - #define MSR_INDEX_MAX 16 -diff --git a/tools/tests/x86_emulator/wrappers.c b/tools/tests/x86_emulator/wrappers.c -index d02013c..eba7cc9 100644 ---- a/tools/tests/x86_emulator/wrappers.c -+++ b/tools/tests/x86_emulator/wrappers.c -@@ -1,5 +1,4 @@ - #include --#include - - #define WRAP(x) typeof(x) emul_##x - #include "x86-emulate.h" -diff --git a/tools/tests/x86_emulator/x86-emulate.h b/tools/tests/x86_emulator/x86-emulate.h -index b249e46..07ea1e8 100644 ---- a/tools/tests/x86_emulator/x86-emulate.h -+++ b/tools/tests/x86_emulator/x86-emulate.h -@@ -3,11 +3,35 @@ - #include - #include - #include --#include -- -+/* -+ * Use of sse registers must be disabled prior to the definition of -+ * always_inline functions that would use them (memcpy, memset, etc), -+ * so do this as early as possible, aiming to be before any always_inline -+ * functions that are used are declared. -+ * Unfortunately, this cannot be done prior to inclusion of -+ * due to functions such as 'atof' that have SSE register return declared, -+ * so do so here, immediately after that. -+ */ - #if __GNUC__ >= 6 - #pragma GCC target("no-sse") - #endif -+ /* -+ * Attempt detection of unwanted prior inclusion of some headers known to use -+ * always_inline with SSE registers in some library / compiler / optimization -+ * combinations. -+ */ -+#ifdef _STRING_H -+#error "Must not include before x86-emulate.h" -+#endif -+#include -+ -+/* EOF is a standard macro defined in so use it for detection */ -+#ifdef EOF -+#error "Must not include before x86-emulate.h" -+#endif -+#ifdef WRAP -+#include -+#endif - - #include - --- -2.1.4 - -- cgit 1.2.3-korg