[OE-core] [PATCH] gcc-7.inc: add new warning "Wnot-cross-compiler"
Juro Bystricky
juro.bystricky at intel.com
Tue Jul 18 22:45:01 UTC 2017
Suppose we have an autotools project that looks like it is using the cross
compiler but is actually reaching out to the host compiler instead.
On an x86-64 build, you may not even notice.
To be able to prevent this, this patch implements a new gcc warning
"Wnot-cross-compiler". The intention here is to intentionally break a build
if we are not using a cross-compiler when one is expected to be used.
Expected usage: " -Wnot-cross-compiler -Werror=not-cross-compiler "
[YOCTO #11587]
Signed-off-by: Juro Bystricky <juro.bystricky at intel.com>
---
meta/recipes-devtools/gcc/gcc-7.1.inc | 1 +
.../gcc/gcc-7.1/0051-warn-not-cross-compiler.patch | 39 ++++++++++++++++++++++
2 files changed, 40 insertions(+)
create mode 100644 meta/recipes-devtools/gcc/gcc-7.1/0051-warn-not-cross-compiler.patch
diff --git a/meta/recipes-devtools/gcc/gcc-7.1.inc b/meta/recipes-devtools/gcc/gcc-7.1.inc
index 3f1c06d..e9b1f21 100644
--- a/meta/recipes-devtools/gcc/gcc-7.1.inc
+++ b/meta/recipes-devtools/gcc/gcc-7.1.inc
@@ -75,6 +75,7 @@ SRC_URI = "\
file://0048-gcc-Enable-static-PIE.patch \
file://0049-libsanitizer-Use-stack_t-instead-of-struct-sigaltsta.patch \
file://0050-replace-struct-ucontext-with-ucontext_t.patch \
+ file://0051-warn-not-cross-compiler.patch \
${BACKPORTS} \
"
BACKPORTS = "\
diff --git a/meta/recipes-devtools/gcc/gcc-7.1/0051-warn-not-cross-compiler.patch b/meta/recipes-devtools/gcc/gcc-7.1/0051-warn-not-cross-compiler.patch
new file mode 100644
index 0000000..78671ed
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-7.1/0051-warn-not-cross-compiler.patch
@@ -0,0 +1,39 @@
+
+This patch implements an additional gcc command line option warning
+"Wnot-cross-compiler". The option (if specified) will simply generate
+a warning if gcc being used is not a cross-compiler.
+
+Upstream-Status: Pending
+Signed-off-by: Juro Bystricky <juro.bystricky at intel.com>
+
+
+diff --git a/gcc/common.opt b/gcc/common.opt
+--- a/gcc/common.opt
++++ b/gcc/common.opt
+@@ -801,6 +801,10 @@
+ Common Var(warn_vector_operation_performance) Warning
+ Warn when a vector operation is compiled outside the SIMD.
+
++Wnot-cross-compiler
++Common Warning
++Warn when not-cross-compiling.
++
+ Xassembler
+ Driver Separate
+
+diff --git a/gcc/opts.c b/gcc/opts.c
+--- a/gcc/opts.c
++++ b/gcc/opts.c
+@@ -2334,6 +2334,12 @@
+ opts->x_flag_ipa_icf_variables = value;
+ break;
+
++ case OPT_Wnot_cross_compiler:
++#ifndef CROSS_DIRECTORY_STRUCTURE
++ warning (OPT_Wnot_cross_compiler, "Not using cross-compiler!");
++#endif
++ break;
++
+ default:
+ /* If the flag was handled in a standard way, assume the lack of
+ processing here is intentional. */
--
2.7.4
More information about the Openembedded-core
mailing list