From 5f9536b929c41a8a19fc0703af4e19f4c37aa614 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 25 Jan 2014 01:03:30 +0200 Subject: [PATCH] gcc: do not ever try to include host headers patch source: openricks git --- .../patches/gcc-crosscompile-badness.patch | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 packages/lang/gcc/patches/gcc-crosscompile-badness.patch diff --git a/packages/lang/gcc/patches/gcc-crosscompile-badness.patch b/packages/lang/gcc/patches/gcc-crosscompile-badness.patch new file mode 100644 index 0000000000..22aa83167f --- /dev/null +++ b/packages/lang/gcc/patches/gcc-crosscompile-badness.patch @@ -0,0 +1,31 @@ +Index: gcc-4.4+svnr145550/gcc/incpath.c +=================================================================== +--- gcc-4.4+svnr145550.orig/gcc/incpath.c 2009-04-04 13:48:31.000000000 -0700 ++++ gcc-4.4+svnr145550/gcc/incpath.c 2009-04-04 14:49:29.000000000 -0700 +@@ -417,6 +417,26 @@ + p->construct = 0; + p->user_supplied_p = user_supplied_p; + ++ /* A common error when cross compiling is including ++ host headers. This code below will try to fail fast ++ for cross compiling. Currently we consider /usr/include, ++ /opt/include and /sw/include as harmful. */ ++ ++ { ++ /* printf("Adding Path: %s\n", p->name ); */ ++ if( strstr(p->name, "/usr/include" ) == p->name ) { ++ fprintf(stderr, _("CROSS COMPILE Badness: /usr/include in INCLUDEPATH: %s\n"), p->name); ++ abort(); ++ } else if( strstr(p->name, "/sw/include") == p->name ) { ++ fprintf(stderr, _("CROSS COMPILE Badness: /sw/include in INCLUDEPATH: %s\n"), p->name); ++ abort(); ++ } else if( strstr(p->name, "/opt/include") == p->name ) { ++ fprintf(stderr, _("CROSS COMPILE Badness: /opt/include in INCLUDEPATH: %s\n"), p->name); ++ abort(); ++ } ++ } ++ ++ + add_cpp_dir_path (p, chain); + } +