diff options
| -rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.9.inc | 1 | ||||
| -rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.9/0054-gcc-Makefile.in-fix-parallel-building-failure.patch | 56 |
2 files changed, 57 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.9.inc b/meta/recipes-devtools/gcc/gcc-4.9.inc index cbf1355fcb..10bd5d54f6 100644 --- a/meta/recipes-devtools/gcc/gcc-4.9.inc +++ b/meta/recipes-devtools/gcc/gcc-4.9.inc | |||
| @@ -67,6 +67,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ | |||
| 67 | file://0051-eabispe.patch \ | 67 | file://0051-eabispe.patch \ |
| 68 | file://0052-Fix-GCC-targeting-E500-SPE-errors-with-the-_Decimal64-type.patch \ | 68 | file://0052-Fix-GCC-targeting-E500-SPE-errors-with-the-_Decimal64-type.patch \ |
| 69 | file://0053-gcc-fix-segfault-from-calling-free-on-non-malloc-d-a.patch \ | 69 | file://0053-gcc-fix-segfault-from-calling-free-on-non-malloc-d-a.patch \ |
| 70 | file://0054-gcc-Makefile.in-fix-parallel-building-failure.patch \ | ||
| 70 | " | 71 | " |
| 71 | SRC_URI[md5sum] = "9709b49ae0e904cbb0a6a1b62853b556" | 72 | SRC_URI[md5sum] = "9709b49ae0e904cbb0a6a1b62853b556" |
| 72 | SRC_URI[sha256sum] = "b9b047a97bade9c1c89970bc8e211ff57b7b8998a1730a80a653d329f8ed1257" | 73 | SRC_URI[sha256sum] = "b9b047a97bade9c1c89970bc8e211ff57b7b8998a1730a80a653d329f8ed1257" |
diff --git a/meta/recipes-devtools/gcc/gcc-4.9/0054-gcc-Makefile.in-fix-parallel-building-failure.patch b/meta/recipes-devtools/gcc/gcc-4.9/0054-gcc-Makefile.in-fix-parallel-building-failure.patch new file mode 100644 index 0000000000..213820a104 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.9/0054-gcc-Makefile.in-fix-parallel-building-failure.patch | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | gcc/Makefile.in: fix parallel building failure | ||
| 2 | |||
| 3 | Most C source files included config.h which was generated by a rule. | ||
| 4 | But no related prerequisites was added to the C source compiling rule. | ||
| 5 | There was potential building failure while makefile enabled parallel. | ||
| 6 | |||
| 7 | The C source compiling rule used suffix rule '.c.o', but the suffix | ||
| 8 | rule doesn't support prerequisites. | ||
| 9 | https://www.gnu.org/software/make/manual/html_node/Suffix-Rules.html | ||
| 10 | |||
| 11 | We used the pattern rule '%.o : %.c' to instead, and add the config.h | ||
| 12 | as its prerequisite | ||
| 13 | |||
| 14 | We also moved the '%.o : %.c' rule down to the 'build/%.o :' rule, which | ||
| 15 | makes '%.o : %.c' rule doesn't override 'build/%.o :'. | ||
| 16 | |||
| 17 | Upstream-Status: Pending | ||
| 18 | |||
| 19 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
| 20 | --- | ||
| 21 | gcc/Makefile.in | 12 ++++++++---- | ||
| 22 | 1 file changed, 8 insertions(+), 4 deletions(-) | ||
| 23 | |||
| 24 | diff --git a/gcc/Makefile.in b/gcc/Makefile.in | ||
| 25 | index 6475cba..04889fe 100644 | ||
| 26 | --- a/gcc/Makefile.in | ||
| 27 | +++ b/gcc/Makefile.in | ||
| 28 | @@ -1054,10 +1054,6 @@ COMPILE = source='$<' object='$@' libtool=no \ | ||
| 29 | POSTCOMPILE = | ||
| 30 | endif | ||
| 31 | |||
| 32 | -.cc.o .c.o: | ||
| 33 | - $(COMPILE) $< | ||
| 34 | - $(POSTCOMPILE) | ||
| 35 | - | ||
| 36 | # | ||
| 37 | # Support for additional languages (other than C). | ||
| 38 | # C can be supported this way too (leave for later). | ||
| 39 | @@ -2342,6 +2338,14 @@ build/%.o : # dependencies provided by explicit rule later | ||
| 40 | $(COMPILER_FOR_BUILD) -c $(BUILD_COMPILERFLAGS) $(BUILD_CPPFLAGS) \ | ||
| 41 | -o $@ $< | ||
| 42 | |||
| 43 | +%.o: %.c $(CONFIG_H) | ||
| 44 | + $(COMPILE) $< | ||
| 45 | + $(POSTCOMPILE) | ||
| 46 | + | ||
| 47 | +%.o: %.cc $(CONFIG_H) | ||
| 48 | + $(COMPILE) $< | ||
| 49 | + $(POSTCOMPILE) | ||
| 50 | + | ||
| 51 | ## build/version.o is compiled by the $(COMPILER_FOR_BUILD) but needs | ||
| 52 | ## several C macro definitions, just like version.o | ||
| 53 | build/version.o: version.c version.h \ | ||
| 54 | -- | ||
| 55 | 1.8.1.2 | ||
| 56 | |||
