diff options
5 files changed, 78 insertions, 34 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.0.inc b/meta/recipes-devtools/gcc/gcc-4.5.0.inc index 2b5c82975a..9a0a5e5671 100644 --- a/meta/recipes-devtools/gcc/gcc-4.5.0.inc +++ b/meta/recipes-devtools/gcc/gcc-4.5.0.inc | |||
| @@ -44,6 +44,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ | |||
| 44 | file://arm-softfloat.patch \ | 44 | file://arm-softfloat.patch \ |
| 45 | file://zecke-xgcc-cpp.patch \ | 45 | file://zecke-xgcc-cpp.patch \ |
| 46 | file://gcc-poison-system-directories.patch \ | 46 | file://gcc-poison-system-directories.patch \ |
| 47 | file://gcc-poison-dir-extend.patch \ | ||
| 47 | file://gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ | 48 | file://gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ |
| 48 | file://64bithack.patch \ | 49 | file://64bithack.patch \ |
| 49 | file://optional_libstdc.patch \ | 50 | file://optional_libstdc.patch \ |
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-poison-dir-extend.patch b/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-poison-dir-extend.patch new file mode 100644 index 0000000000..d1712071a9 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-poison-dir-extend.patch | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | Add /sw/include and /opt/include based on the original | ||
| 2 | zecke-no-host-includes.patch patch. The original patch checked for | ||
| 3 | /usr/include, /sw/include and /opt/include and then triggered a failure and | ||
| 4 | aborted. | ||
| 5 | |||
| 6 | Instead, we add the two missing items to the current scan. If the user | ||
| 7 | wants this to be a failure, they can add "-Werror=poison-system-directories". | ||
| 8 | |||
| 9 | Signed-off-by: Mark Hatle <mark.hatle@windriver.com> | ||
| 10 | |||
| 11 | diff -ur gcc-4.5.0.orig/gcc/incpath.c gcc-4.5.0/gcc/incpath.c | ||
| 12 | --- gcc-4.5.0.orig/gcc/incpath.c 2010-09-29 14:58:31.358975524 -0500 | ||
| 13 | +++ gcc-4.5.0/gcc/incpath.c 2010-09-29 15:08:02.065975516 -0500 | ||
| 14 | @@ -363,7 +363,9 @@ | ||
| 15 | { | ||
| 16 | if ((!strncmp (p->name, "/usr/include", 12)) | ||
| 17 | || (!strncmp (p->name, "/usr/local/include", 18)) | ||
| 18 | - || (!strncmp (p->name, "/usr/X11R6/include", 18))) | ||
| 19 | + || (!strncmp (p->name, "/usr/X11R6/include", 18)) | ||
| 20 | + || (!strncmp (p->name, "/sw/include", 11)) | ||
| 21 | + || (!strncmp (p->name, "/opt/include", 12))) | ||
| 22 | warning (OPT_Wpoison_system_directories, | ||
| 23 | "include location \"%s\" is unsafe for " | ||
| 24 | "cross-compilation", | ||
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-poison-system-directories.patch b/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-poison-system-directories.patch index e68a2de2a2..04043ff0b7 100644 --- a/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-poison-system-directories.patch +++ b/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-poison-system-directories.patch | |||
| @@ -34,7 +34,7 @@ Index: gcc-4.5.0/gcc/common.opt | |||
| 34 | Warn when padding is required to align structure members | 34 | Warn when padding is required to align structure members |
| 35 | 35 | ||
| 36 | +Wpoison-system-directories | 36 | +Wpoison-system-directories |
| 37 | +Common Var(flag_poison_system_directories) Init(1) | 37 | +Common Var(flag_poison_system_directories) Init(1) Warning |
| 38 | +Warn for -I and -L options using system directories if cross compiling | 38 | +Warn for -I and -L options using system directories if cross compiling |
| 39 | + | 39 | + |
| 40 | Wshadow | 40 | Wshadow |
| @@ -147,3 +147,55 @@ Index: gcc-4.5.0/gcc/incpath.c | |||
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | /* Use given -I paths for #include "..." but not #include <...>, and | 149 | /* Use given -I paths for #include "..." but not #include <...>, and |
| 150 | diff -ur gcc-4.5.0.orig/gcc/Makefile.in gcc-4.5.0/gcc/Makefile.in | ||
| 151 | --- gcc-4.5.0.orig/gcc/Makefile.in 2010-09-29 17:13:49.164088845 -0500 | ||
| 152 | +++ gcc-4.5.0/gcc/Makefile.in 2010-09-29 18:48:19.300178501 -0500 | ||
| 153 | @@ -1965,7 +1965,7 @@ | ||
| 154 | |||
| 155 | incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \ | ||
| 156 | intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \ | ||
| 157 | - $(MACHMODE_H) | ||
| 158 | + $(MACHMODE_H) $(FLAGS_H) toplev.h | ||
| 159 | |||
| 160 | c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ | ||
| 161 | $(RTL_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) $(FLAGS_H) $(FUNCTION_H) output.h \ | ||
| 162 | diff -ur gcc-4.5.0.orig/gcc/configure gcc-4.5.0/gcc/configure | ||
| 163 | --- gcc-4.5.0.orig/gcc/configure 2010-09-29 14:58:31.702054881 -0500 | ||
| 164 | +++ gcc-4.5.0/gcc/configure 2010-09-29 18:46:31.486068500 -0500 | ||
| 165 | @@ -913,6 +913,7 @@ | ||
| 166 | enable_maintainer_mode | ||
| 167 | enable_version_specific_runtime_libs | ||
| 168 | with_slibdir | ||
| 169 | +enable_poison_system_directories | ||
| 170 | enable_plugin | ||
| 171 | enable_target_optspace | ||
| 172 | ' | ||
| 173 | @@ -1621,6 +1622,8 @@ | ||
| 174 | --enable-version-specific-runtime-libs | ||
| 175 | specify that runtime libraries should be | ||
| 176 | installed in a compiler-specific directory | ||
| 177 | + --enable-poison-system-directories | ||
| 178 | + warn for use of native system header directories | ||
| 179 | --enable-plugin enable plugin support | ||
| 180 | |||
| 181 | Optional Packages: | ||
| 182 | @@ -25339,6 +25377,19 @@ | ||
| 183 | |||
| 184 | |||
| 185 | |||
| 186 | +# Check whether --enable-poison-system-directories was given. | ||
| 187 | +if test "${enable_poison_system_directories+set}" = set; then : | ||
| 188 | + enableval=$enable_poison_system_directories; | ||
| 189 | +else | ||
| 190 | + enable_poison_system_directories=no | ||
| 191 | +fi | ||
| 192 | + | ||
| 193 | +if test "x${enable_poison_system_directories}" = "xyes"; then | ||
| 194 | + | ||
| 195 | +$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h | ||
| 196 | + | ||
| 197 | +fi | ||
| 198 | + | ||
| 199 | # Substitute configuration variables | ||
| 200 | |||
| 201 | |||
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.0/zecke-no-host-includes.patch b/meta/recipes-devtools/gcc/gcc-4.5.0/zecke-no-host-includes.patch deleted file mode 100644 index 4ccf35f627..0000000000 --- a/meta/recipes-devtools/gcc/gcc-4.5.0/zecke-no-host-includes.patch +++ /dev/null | |||
| @@ -1,31 +0,0 @@ | |||
| 1 | Index: gcc-4.4+svnr145550/gcc/incpath.c | ||
| 2 | =================================================================== | ||
| 3 | --- gcc-4.4+svnr145550.orig/gcc/incpath.c 2009-04-04 13:48:31.000000000 -0700 | ||
| 4 | +++ gcc-4.4+svnr145550/gcc/incpath.c 2009-04-04 14:49:29.000000000 -0700 | ||
| 5 | @@ -417,6 +417,26 @@ | ||
| 6 | p->construct = 0; | ||
| 7 | p->user_supplied_p = user_supplied_p; | ||
| 8 | |||
| 9 | +#ifdef CROSS_COMPILE | ||
| 10 | + /* A common error when cross compiling is including | ||
| 11 | + host headers. This code below will try to fail fast | ||
| 12 | + for cross compiling. Currently we consider /usr/include, | ||
| 13 | + /opt/include and /sw/include as harmful. */ | ||
| 14 | + { | ||
| 15 | + /* printf("Adding Path: %s\n", p->name ); */ | ||
| 16 | + if( strstr(p->name, "/usr/include" ) == p->name ) { | ||
| 17 | + fprintf(stderr, _("CROSS COMPILE Badness: /usr/include in INCLUDEPATH: %s\n"), p->name); | ||
| 18 | + abort(); | ||
| 19 | + } else if( strstr(p->name, "/sw/include") == p->name ) { | ||
| 20 | + fprintf(stderr, _("CROSS COMPILE Badness: /sw/include in INCLUDEPATH: %s\n"), p->name); | ||
| 21 | + abort(); | ||
| 22 | + } else if( strstr(p->name, "/opt/include") == p->name ) { | ||
| 23 | + fprintf(stderr, _("CROSS COMPILE Badness: /opt/include in INCLUDEPATH: %s\n"), p->name); | ||
| 24 | + abort(); | ||
| 25 | + } | ||
| 26 | + } | ||
| 27 | +#endif | ||
| 28 | + | ||
| 29 | add_cpp_dir_path (p, chain); | ||
| 30 | } | ||
| 31 | |||
diff --git a/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb index 545beebd1a..7f67acf28d 100644 --- a/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb | |||
| @@ -3,8 +3,6 @@ PR = "r11" | |||
| 3 | require gcc-${PV}.inc | 3 | require gcc-${PV}.inc |
| 4 | require gcc-cross4.inc | 4 | require gcc-cross4.inc |
| 5 | 5 | ||
| 6 | SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch " | ||
| 7 | |||
| 8 | EXTRA_OECONF += "--disable-libunwind-exceptions \ | 6 | EXTRA_OECONF += "--disable-libunwind-exceptions \ |
| 9 | --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native} \ | 7 | --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native} \ |
| 10 | --with-system-zlib " | 8 | --with-system-zlib " |
