3d97f40858
This GCC patch was needed in order to successfully build a cross-compilation toolchain under buildroot on Ubuntu 14.04. The patch is included in later GCC releases, so we probably can drop this once we upgrade GCC.
43 行
1.6 KiB
Diff
43 行
1.6 KiB
Diff
Avoid GCC 4.6 segfaults
|
||
|
||
Buildroot's attempt to build a GCC 4.6.x cross-compilation toolchain might fail
|
||
with something like
|
||
|
||
/some/path/buildroot-2013.02/output/toolchain/gcc-4.6.3/libgcc/../gcc/libgcc2.c: In function ‘__negdi2’:
|
||
/some/path/buildroot-2013.02/output/toolchain/gcc-4.6.3/libgcc/../gcc/libgcc2.c:72:1: internal compiler error: Segmentation fault
|
||
|
||
This patch is revision 191605 for GCC 4.7.x
|
||
(<https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=191605>). Applying it
|
||
to 4.6.x seems to prevent this crash.
|
||
|
||
Save this file as
|
||
buildroot-2013.02/toolchain/gcc/4.6.3/999-ira-int.patch
|
||
to have buildroot apply this patch to GCC 4.6.x source before trying to build
|
||
it.
|
||
|
||
See also <https://gcc.gnu.org/ml/gcc-help/2014-03/msg00049.html>
|
||
|
||
Index: buildroot-2013.02/toolchain/gcc/4.6.3/999-ira-int.patch
|
||
===================================================================
|
||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||
+++ buildroot-2013.02/toolchain/gcc/4.6.3/999-ira-int.patch 2015-03-29 00:09:28.000000000 -0400
|
||
@@ -0,0 +1,18 @@
|
||
+--- gcc-4_7-branch/gcc/ira-int.h 2012/09/21 09:19:39 191604
|
||
++++ gcc-4_7-branch/gcc/ira-int.h 2012/09/21 10:08:35 191605
|
||
+@@ -1138,8 +1138,13 @@
|
||
+ ira_allocno_object_iter_cond (ira_allocno_object_iterator *i, ira_allocno_t a,
|
||
+ ira_object_t *o)
|
||
+ {
|
||
+- *o = ALLOCNO_OBJECT (a, i->n);
|
||
+- return i->n++ < ALLOCNO_NUM_OBJECTS (a);
|
||
++ int n = i->n++;
|
||
++ if (n < ALLOCNO_NUM_OBJECTS (a))
|
||
++ {
|
||
++ *o = ALLOCNO_OBJECT (a, n);
|
||
++ return true;
|
||
++ }
|
||
++ return false;
|
||
+ }
|
||
+
|
||
+ /* Loop over all objects associated with allocno A. In each
|