summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc
Commit message (Collapse)AuthorAgeFilesLines
* gcc: Tweak arm multilib endian patch for baremetalRichard Purdie2015-03-311-8/+16
| | | | | | | | | In a baremetal build, TARGET_ENDIAN_OPTION isn't set leading to build failures. Add in ifdefs to avoid this. (From OE-Core rev: 5325c763a66b252c976ece3a08e5fc916fd6c416) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-cross-canadian: Enable stripping and packaging of binariesRichard Purdie2015-03-201-3/+6
| | | | | | | | | This seems to have been disabled since the dawn of time for no good reason. Enable the .debug stripping and packaging allowing for a smaller SDK. (From OE-Core rev: bbaf97ba38329b5221e6d4d0d18f20e6b7d6fd91) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-source: fix bug to avoid building error.Bian Naimeng2015-03-101-0/+1
| | | | | | | | | | | | | | | | gcc-source don't do do_package_write_rpm, so we should set PACKAGES = "" to avoid the building error if we want generate srpm, otherwise, we get the error as below. ERROR: Task do_deploy_archives in meta/recipes-devtools/gcc/gcc-source_4.9.bb \ depends upon non-existent task do_package_write_rpm in \ meta/recipes-devtools/gcc/gcc-source_4.9.bb (From OE-Core rev: 704fd8f1efbd7fa9368cfe4f956abf24cd58664e) Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Upgrade 4.9.1 -> 4.9.2Khem Raj2015-02-158-79/+428
| | | | | | | | | | | | | | Delete backported patch which are present in 4.9.2 backport patched from upstream gcc trunk to fix [YOCTO #6824] Change-Id: Ia0067940471d4c5d9d62089bf6f18f3a9c2bfedd (From OE-Core rev: bdd8d7db74ad6927cd54f38c3e87246a36b2c319) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-sanitizers: check gcc-build-internal before linkRobert Yang2015-02-151-1/+3
| | | | | | | | | | | | | | | The ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$mtarget may not exist when use the external sdk toolchain, we need check before link for it. Fixed: run.do_configure.12538: 149: cd: can't cd to sysroots/x86_64-linux/usr/include/gcc-build-internal-x86_64-wrs-linux (LOCAL REV: NOT UPSTREAM) -- Sent to oe-core on 20150204 (From OE-Core rev: 82166e514438eb1b562f2a4dc2f9f8fecf3f60df) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target: Don't install target gcc libdir filesRichard Purdie2015-02-131-0/+9
| | | | | | | | | | | | | | Installing /usr/lib/gcc/* means we'd have two copies, one from gcc-cross and one from here. These can confuse gcc cross where includes use #include_next and builds track file dependencies (e.g. perl and its makedepends code). For determinism we don't install this to the sysroot, ever and rely on the copy from gcc-cross. [YOCTO #7287] (From OE-Core rev: 15b3324b769dc92e1b0d4b9da9fbfccbc8dde9dd) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-configure-common.inc: remove ac_cv_path_SEDRobert Yang2015-02-081-1/+0
| | | | | | | | | It is not needed any more since sed-native had been dropped. (From OE-Core rev: 289e433f8d0e4b5a710094e3a3c0d8e77e82e50d) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* arch-mips.inc: Change definition of TRANSLATED_TARGET_ARCHMark Hatle2015-01-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | [YOCTO #7230] In certain system configurations TRANSLATED_TARGET_ARCH will not expand in the right order for gcc-cross-candian-mips64n32 to be generated properly. This will cause SDKs to fail to generate properly. Changing the global definition of TRANSLATED_TARGET_ARCH always expands the ABIEXTENSION, which causes the OVERRIDES to pick it up as well. This effectively defines a new class of overrides for the 'n32'. The side effect is that we need to duplicate some mips64 overrides, and redefine others that were previously 'n32' or 'mips64' exclusive to have the correct semantics. (From OE-Core rev: 4b3a2b703b20583bd107f00a297d972e9bfb514a) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-sanitizers: fix licensingDan McGregor2015-01-291-0/+6
| | | | | | | | | | | | | | The sanitizer runtime library is dual-licensed under the NCSA and MIT licenses. Also make nativesdk-gcc-sanitizers use SDKGCCVERSION by default instead of GCCVERSION (From OE-Core rev: 4ed21998827060745d2858e2d6c121baf823e64a) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: ensure target gcc headers can be includedPaul Eggleton2015-01-294-0/+164
| | | | | | | | | | | | | | | | | | | | | There are a few headers installed as part of gcc-runtime (omp.h, ssp/*.h). Being installed from a recipe built for the target architecture, these are within the target sysroot and not cross/nativesdk; thus they weren't able to be found by gcc with the existing search paths. Add support for picking up these headers under the sysroot supplied on the gcc command line in order to resolve this. Thanks to Richard Purdie for giving me a number of pointers during fixing this issue. Fixes [YOCTO #7141]. (From OE-Core rev: 5c87bb9ac2b35b3f8cf2b7d3e4507e7013115162) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc/libgcc-common.inc: Add missing 'fakeroot' to two tasksMark Hatle2015-01-291-2/+2
| | | | | | | | | | | | Without the fakeroot flag the two tasks may create files or symbolic links that end up being owned by the user and not root:root as expected. (From OE-Core rev: 7e9fd9d34a540fdfc1243d059d1f13f1d09864d2) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-runtime: Remove libgfortran data from receipeDaniel Dragomir2015-01-231-15/+0
| | | | | | | | | | | | | | | | | | | | | | | Remove libgfortran packages from PACKAGES list as long as libgfortran has separate receipe since commit 5bde5d9b39ea67f19a1a6aedd0c08c6cfedcbe5f gcc: Allow fortran to build successfully in 4.8 Otherwise, when fortran support will be enabled in the compiler, both lingfortran and gcc-runtime receipes will create the same files and will try to install them. This will cause errors: ERROR: The recipe libgfortran is trying to install files into a shared area when those files already exist. Those files and their manifest location are: ... Please verify which recipe should provide the above files. (From OE-Core rev: 872342fa3d08edede4a0105ac3ddb0f2ae3224b4) Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-sanitizers: Enable GCC sanitizersDan McGregor2015-01-233-0/+115
| | | | | | | | | | | | | | | AddressSanitizer is a fast memory error detector. ThreadSanitizer detects data races. UBSanitizer detectes undefined behaviour. All consist of compiler instrumentation and a run-time library. The compiler instrumentation was already enabled, this builds the run-time library component. (From OE-Core rev: 1709bf0c3a84bb04bc52e9104ad8e09fba6c6f91) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Disable aarch64 multilib optionsMark Hatle2014-12-232-0/+33
| | | | | | | | | | We want to revert to default gcc behavior to support oe-core's ability to change the libdir. (From OE-Core rev: 7ea9e87217c78a20cebcb16a23bfd412e276440f) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc runtime: specify license on a per package basisJoe Slater2014-12-192-0/+38
| | | | | | | | | | | | | It can be alarming to attempt to exclude GPLv3 from an image but find that libstdc++ and libgcc still show it. We indicate the license for each package to show libraries that really are just GCC-3.0-with-GCC-exception. (From OE-Core rev: 5db535a91edea439c14e75726acd23e64bb1e2ea) Signed-off-by: Joe Slater <jslater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: stub do_fetch instead of removing itRoss Burton2014-12-051-1/+4
| | | | | | | | | | | Whilst gcc doesn't have any source to fetch, it still needs a fetch task so that a world fetch can run without errors. So instead of deleting the fetch task, stub it. (From OE-Core rev: 8e68ebbddc2bc41eb6cb607c51d6a80c54c4199d) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Rework shared workRichard Purdie2014-12-037-50/+48
| | | | | | | | | | | | | | | | | | | | | The current implementation of shared work for gcc is at best confusing. It relies on the fetch/unpack/patch tasks having exactly the same stamps and if this gets broken for some reason, its hard to figure out what the problem is. It also leads to complex code in bitbake. The benefits of shared work for gcc are clear but a better approach is needed. This patch adjusts things so that a single new recipe (gcc-source) provides the fetch/unpack/patch/preconfigure tasks, the rest of gcc simply depends on these tasks and have no fetch/unpack/patch tasks of their own. This means we should get the significant benefits (disk usage/performance) of the single source tree but in a way which has less potential for problems and is easier for people to understand. The cost is an extra recipe/some inc files which is probably a good tradeoff. (From OE-Core rev: ceaa0a448dc5ebddb4f7fb94fb8a503a1c0248c3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.8: Drop unused patchRichard Purdie2014-11-281-33/+0
| | | | | | | | | I disabled this patch as it became obsolete some time ago but forgot to remove it, this cleans things up. (From OE-Core rev: 11dc68ef46aa0e3f28473c0decb4034e0d00fcab) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.9: fix the compile failure of 'defaults.h' not foundHongxu Jia2014-11-201-11/+19
| | | | | | | | | | | | | | | | | | | | | While compiling gcc-crosssdk-initial-x86_64 on some host, there is occasionally failure that test the existance of default.h doesn't work. ... | tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/gcc/calls.c:1240: error: 'STACK_CHECK_MAX_VAR_SIZE' was not declared in this scope ... The reason is tm_include_list='** defaults.h' rather than tm_include_list='** ./defaults.h' So we add the test condition for this situation. (From OE-Core rev: fec684512c6f934d7a847b0c9f5151da81426910) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Fix intermittent failures during configureMark Hatle2014-11-093-5/+2
| | | | | | | | | | | | | If configure or any of the components it uses from the shared work directory change, do_configure may fail. An existing do_preconfigure was created to handle these conditions, but a 'sed' operation was missed, and a call to gnu-configize was also missed. (From OE-Core rev: 21c2cfff14442cf224e3568bdbb9bcd4070be247) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: backport two patches to fix ICE in dwarf2out_var_locationJackie Huang2014-11-063-0/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | The first patch fixes the ICE in dwarf2out_var_location, at dwarf2out.c. r212171: * except.c (emit_note_eh_region_end): New helper function. (convert_to_eh_region_ranges): Use emit_note_eh_region_end to emit EH_REGION_END note. * jump.c (cleanup_barriers): Do not split a call and its corresponding CALL_ARG_LOCATION note. But it introduced a regression issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63348 so backport the fix for the regression as well: r215613: PR rtl-optimization/63348 * emit-rtl.c (try_split): Do not emit extra barrier. (From OE-Core rev: de52db1b1b0dbc9060dddceb42b7dd4f66a7e0f3) Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: poison default sysroot pathRichard Purdie2014-10-306-9/+9
| | | | | | | | | | | | | | | | | | | Various pieces of the code assume that the --sysroot option gets passed into the compiler tools. By having a "sane" default, we don't always spot when this occurs and this can later show up as breakage in sstate, or in usage of the external toolchain. We've long since talked about poisoning the default such that it will break unless the correct option is specified. This patch does just that. If this patch causes something to fail to build, it most likely means the various compiler flags and commands are not correctly being passed through to the underlying piece of software and that there is a real problem that needs fixing, its not the fault of this patch. (From OE-Core rev: 04b725511a505c582a3abdf63d096967f0320779) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: backport patch for gcc bug 61144Saul Wold2014-10-112-0/+32
| | | | | | | | | | | | | | This fixes gcc bug 6144, which in my case exhibited itself as a kernel module that failed to load. This was because static platform_data structures were being corrupted with the optimiser being set to any value other than -O0. Originally-submitted-by: Peter Urbanec <openembedded-devel@urbanec.net> (From OE-Core rev: 365221f7285c0e392f573deaab3b1e00b12bc293) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-runtime: Add linux-gnuspe symlink to fix c++ headersRichard Purdie2014-10-061-0/+3
| | | | | | | | | | | | | | Some architectures can mix different TARGET_OS values, in most cases we just use one but in the ppc case, can use two different values. In this case, to use one toolchain with both, we need to ensure the symlinks exist. This isn't ideal but does fix the ppc toolchains for the release, after which better ways of handling this can be investiaged. Without this, failures in the C++ toolchain are seen. (From OE-Core rev: 112641117f1152bad8a806f1aa872a67575d5316) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-configure/gcc-common: Move preconfigure definition to common includeRichard Purdie2014-09-162-10/+10
| | | | | | | | | | | | | | | | | | | | | There is a race where: NOTE: recipe libgcc-initial-4.9.1-r0: task do_configure: Started NOTE: recipe gcc-runtime-4.9.1-r0: task do_preconfigure: Started | checking build system type... /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb/build/build/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/libgcc/../config.sub: line 1711: syntax error near unexpected token `;;' | /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb/build/build/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/libgcc/../config.sub: line 1711: ` ;;' | configure: error: /bin/bash /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb/build/build/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/libgcc/../config.sub x86_64-linux failed | WARNING: exit code 2 from a shell command. so we need to make sure the preconfigure task executes in all shared work contexts. (From OE-Core rev: 3c30331d6eaf804b83a6d27189a12efc94310e91) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Remove references to eglibcKhem Raj2014-09-011-1/+1
| | | | | | | | | change use of eglibc related variabled to glibc equivalents (From OE-Core rev: fd15d6e0c8da75951a91d4467eda23c229b1026d) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-cross-initial: Put limits.h in gccdir/includeKhem Raj2014-08-151-1/+1
| | | | | | | | | | | | | | musl e.g. is configured to not use fixed-include which is an improvement btw. but libgcc-initial configure has tests which probe for limits.h and since we put it in include-fixed/ dir and that dir does not appear in gcc's internal default search path the configure tests for CPP detection fail and libgcc-initial can not be compiled. (From OE-Core rev: 3bdc225a9e622e9d594944833964fe396200db01) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: update compiler architecture to match gcc-runtime (armv6, armv7a)Peter A. Bigot2014-08-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | The gcc-runtime recipe builds the gcc libraries including libstdc++ with $TARGET_CC_ARCH flags, which include -march=FOO flags that affect whether atomic instructions are available. This causes an ABI incompatibility when the compiler by default generates code for less capable architectures. For example, gcc-runtime libraries on a Cortex-A8 are built with a different C++11/C++14 mutex implementation than is used code compiled outside OE and without architecture-specific flags. This commit fixes the problem specifically for ABI issues related to atomic instructions available in ARMV6 and subsequent architectures. Other ABI incompatibilities may remain in other architectures. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62100 (From OE-Core rev: 0ba6ab39f187ecd4261f08e768f365f461384a3a) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: backport patch affecting Linux kernel buildsPeter A. Bigot2014-08-154-0/+74
| | | | | | | | | | | | A long-standing bug in gcc turns out to cause problems with unpatched Linux versions due to improved optimization enabled by gcc 4.9. The upstream fix missed the gcc-4.9.1 cut-off. It's also been applied upstream to the 4.8 branch so is being added for OE's 4.8 as well. (From OE-Core rev: 06f911894a367f395139c2b0d6c2ba6371398478) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Abstract long double configuration into python functionKhem Raj2014-08-152-4/+6
| | | | | | | | | | | musl does not support IBM 128 long double for ppc, instead of doing complex overrides move it into a pythong snippet which is easier to read and more compact. (From OE-Core rev: e7011429e40ae96b9c9f1e7f3c6f4c1f1102607f) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk: change EXTRA_OECONF_FPU to EXTRA_OECONF_GCC_FLOATPeter A. Bigot2014-08-155-7/+7
| | | | | | | | | | | | This variable is used to ensure the proper version of --with-float=FOO is passed to gcc's configure script. gcc also has a --with-fpu=FOO option that means something different. To avoid confusion, change the names to be consistent. (From OE-Core rev: c17d883fa99b6967d83c3796d22fc0c1dbe704e6) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target: make --enable-clocale consistent with gcc-runtimePeter A. Bigot2014-08-151-0/+2
| | | | | | | (From OE-Core rev: 9ec30be63ad6d991646a7ce0ee22acdad7a81184) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: remove outdated configuration optionPeter A. Bigot2014-08-153-3/+0
| | | | | | | | | | --enable-libunwind-exceptions was removed from gcc at release 3.4.3 about ten years ago. (From OE-Core rev: 285d3579727177e6962d7ad16677429e7dec65f4) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.9: Ensure c++ includes are in /usr/include/c++/${BINV}Peter A. Bigot2014-08-151-1/+1
| | | | | | | | | | | Apply to gcc 4.9 the recent fix to the --with-gxx-include-dir override. Original OE-Core rev: 5a2ff3e8f7cd7a47a5ab4e581847ecc4df87fca (From OE-Core rev: 5fec278316fa9466241b9134c4553bad6db1c1a9) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: remove inappropriate patchPeter A. Bigot2014-08-154-134/+0
| | | | | | | | | | | | | | | | | | 0037-gcc-4.8-PR56797.patch was originally added as an OE backport during 4.8.0. Upstream merged it in 4.8.1, and it was present in 4.9.0. The original patch still applies to 4.9.1 (and presumably 4.8.2), but now is modifying store_multiple_sequence instead of load_multiple_sequence (the two functions are nearly identical). It may or may not be necessary in store_multiple_sequence, but absent a bug report upstream supporting its application in this case, or a least an updated comment and upstream status in the patch, I think this patch should be dropped. (From OE-Core rev: c89443e0f98249b9f9ea33f686c27babe35fd024) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: recipe whitespace changesPeter A. Bigot2014-08-1510-390/+429
| | | | | | | | | | | Consistent use of whitespace in multi-line assignment, with special focus on OECONF modifications. Quotes on separate lines, four-space indentation, one value per line. (From OE-Core rev: d971db8b2259e4c35b871cccf130fba193849560) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-cross-initial: Use good old bfd linker by defaultKhem Raj2014-08-151-1/+3
| | | | | | | | | | | | | | | | | | We already indicate our intentions to use ld.bfd by specifying it in configure using --with-ld which works ok unless here where we manually create symlinks to binutils-cross components, when we use ld-is-gold feature default ld points to gold and this symlinking has to be aware of the fact that we configured binutils and gcc-cross to use gold as default ld but gcc-cross-initial uses BFD ld This would be visible when using gold and rebuilding eglibc (From OE-Core rev: 77cab553ee6caa940e21cca46ff134f84e65c171) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Fix gcc-multilib-config comparisonMark Hatle2014-08-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | Fix an issue on a multilib configuration that contains more then 1 multilib. I.e. on MIPS64: DEFAULTTUNE = "mips64" MULTILIBS = "lib32n:mips64_n32 lib32:mips32" While normally you'd use 'libn32', the above is legal. With the startswith code, the system will look to expand the 'lib32' element and find the 'lib32n' instead, and will result in a warning: lib32 doesn't have a corresponding tune. Skipping... (From OE-Core rev: ced919f6013fc0dbb8b8f75f87a8c0a4f416b1fe) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Upgrade 4.9.0 -> 4.9.1Khem Raj2014-08-022-103/+4
| | | | | | | | | | Drop patches which are already available in 4.9.1 (From OE-Core rev: b2ecf4065fa5930b896b8790d153389e400eb0ec) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.9.inc: fix parallel building failureHongxu Jia2014-08-021-37/+42
| | | | | | | | | | | | | | | | | | | | | | | | | The gcc-ar.o, gcc-nm.o, gcc-ranlib.o and errors.o included config.h which was a generated file. But no explicity rule to clarify the dependency. There was potential building failure while parallel make. For gcc-ar.o, gcc-nm.o and gcc-ranlib.o, they were compiled from one C source file gcc-ar.c, we add them to ALL_HOST_BACKEND_OBJS, so the '$(ALL_HOST_OBJS) : | $(generated_files)' rule could work for these objects. For errors.o, it is part of gengtype, and the gengtype generator program is special: Two versions are built. One is for the build machine, and one is for the host. We refered what gengtype-parse.o did (which also is part of gengtype). [YOCTO #6568] (From OE-Core rev: aea4b2d58856226c471922dfa40650cba2f5a36a) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.9.inc: fix parallel building failureHongxu Jia2014-07-252-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | In subdir 'gcc', Most C source files included config.h which was generated by a rule. But no related prerequisites was added to the C source compiling rule. There was potential building failure while makefile enabled parallel. The C source compiling rule used suffix rule '.c.o', but the suffix rule doesn't support prerequisites. https://www.gnu.org/software/make/manual/html_node/Suffix-Rules.html We used the pattern rule '%.o : %.c' to instead, and add the config.h as its prerequisite We also moved the '%.o : %.c' rule down to the 'build/%.o :' rule, which makes '%.o : %.c' rule doesn't override 'build/%.o :'. [YOCTO #6568] (From OE-Core rev: 86c2483f0fe05fb763d280ae22d70e54cb4bb0bc) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-multilib: Simply/fix MULTILIB_OPTIONS handlingRichard Purdie2014-07-251-18/+9
| | | | | | | | | | | | | | | | | | | | | | MULTILIB_OPTIONS takes the parameters which trigger a given multilib to be selected. It supports *one* option per multilib, '/' separated. Spaces separate options used to generate additional multilib combinations. Adding in all of CFLAGS to this is therefore clearly a really bad idea but how do we fix things? The best option I've come up with so far is a list of whitelist variables to use to trigger the multilibs. Its populated with the standard multilibs we support, anyone setting up an advanced multilib can populate the variable with the correct trigger parameters. This has the advantage of simplifying the code and allowing us to remove the code filtering blocks since there is no longer option duplication. Testing after this change shows a much improved sdk toolchain functionality. (From OE-Core rev: 29202cd1b9d2e5d56e5b9f7a596e44e229c90492) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: update *LIBC_* linker relocation reglexTing Liu2014-07-191-2/+4
| | | | | | | | | | | | | | * GLIBC_DYNAMIC_LINKER64 reglex does not work for rs6000/linux64.h, update it. * it turns out that UCLIBC_DYNAMIC_LINKER reglex will strip the 32/64 chars from UCLIBC_DYNAMIC_LINKER64/UCLIBC_DYNAMIC_LINKER32, add '\b'. my two PCs: Centos 6.5 (python 2.7.5) and Fedora 13 (python 2.7.3) (From OE-Core rev: a0b408191d64804df1748163060313af31433ac8) Signed-off-by: Ting Liu <ting.liu@freescale.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Ensure c++ includes are in /usr/include/c++/${BINV}Richard Tollerton2014-07-105-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | It was observed that code using STLport 4.6 fails to compile under the SDK with the following error message: .../includes/cstddef:38:46: fatal error: ../4.7.2/cstddef: No such file or directory STLport 4.6 (screwily) assumes that the C++ system headers live in a gcc-versioned subdirectory, for gcc>=3.0; cf http://sourceforge.net/p/stlport/code/ci/STLport-4.6-patch/tree/stlport/config/stl_gcc.h#l269. This assumption is *almost always* valid, because that matches the default setting of --with-gxx-include-dir. We can match that behavior by appending "/${BINV}" to our own --with-gxx-include-dir settings. Natinst-CAR-ID: 446449 Natinst-Reviewboard-ID: 57209 Acked-by: Ken Sharp <ken.sharp@ni.com> Acked-by: Ben Shelton <ben.shelton@ni.com> (From OE-Core rev: 5a2ff3e8f7cd7a47a5ab4e581847ecc4df87fca3) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes-devtools: fix segfault in lib32-gcc with "." multilib_dirPaul Gortmaker2014-06-292-0/+67
| | | | | | | | | | | | | | | | | | When enabling a lib32-gcc in a 64 bit build, without doing any other configuration, the mutilib dir is unspecified, which is represented internally in gcc as "." and as such uncovers an invalid free on a non-malloc'd pointer. As suggested by the gcc folks, simply make sure the "." case is also stored in a malloc'd pointer, so that the intended runtime behaviour of the code remains unchanged. Patch has been accepted by upstream maintainers of gcc. (From OE-Core rev: bf1473d0c1b099b8d919835cc430b99606134aab) Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-cross-canadian: Add configure-target-libgccMark Hatle2014-06-251-3/+10
| | | | | | | | | | | | While we're not going to package the libgcc component as part of the SDK, we do need to generate it to get the unwind, and quadmath headers. Without this change it is not possible to build eglibc or other components that require these headers with the SDK toolchain. (From OE-Core rev: e67b24401a366b20644510703c7140be975869ea) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-configure-common: Address problems with gengtypeRichard Purdie2014-06-171-0/+2
| | | | | | | | | | | | | | | | | | The gengtype patch we apply to gcc aims to ensure that the build and host config headers don't get confused. We're seeing build failures where both headers have been included, likely due to a race over the configuration files. It seems the gengtype-lex.c file isn't being regenerated when it should and the unconditional inclusion of bconfig.h is resulting in these issues. The fix is therefore to remove the file, forcing its regeneration. [YOCTO #6393] (From OE-Core rev: dd649374b30eb2d9980dce6eae95db0563593ef7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Clean up configure_prepend and fix for mingwRichard Purdie2014-06-013-41/+1
| | | | | | | | | | | | | | | | | | | | | The do_configure_prepend was duplicated in gcc-4.X.inc and gcc-configure-common.inc leading to confusion when reading the resulting do_configure task where the file was processed twice. The only difference was the removal of the include line for gcc 4.8/4.9. On mingw were were seeing two issues, firstly that the if statements meant the values we wanted weren't being set, the second that the include paths were still wrong as there was no header path set. To fix the first issue, the #ifdef conditionals were removed, we want to set these things unconditionally. The second issue is addressed by setting the NATIVE_SYSTEM_HEADER_DIR variable here (it was already set in t-oe). (From OE-Core rev: db44be06c75f2ac17a55dd1764471e869e872b8b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc, uclibc: Add/Fix Upstream-Status in patchesKhem Raj2014-06-011-1/+1
| | | | | | | (From OE-Core rev: 68a0e34260f884f6fb39aae2d0bad035b2b1d177) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: add patch to fix errors with Decimal64 typeAlexandru-Cezar Sardan2014-05-292-0/+99
| | | | | | | | | | [OE-core bug #6270] - https://bugzilla.yoctoproject.org/show_bug.cgi?id=6270 (From OE-Core rev: 8f8ef80131d4aa62a4b106d365a5e7b6273c766d) Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan-KZfg59tc24xl57MIdRCFDg@public.gmane.org> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>