aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc
AgeCommit message (Collapse)Author
2016-10-08gcc-runtime.inc: Add CPP support for x86-64-x32 tuneJuro Bystricky
Using the following setup (as specified in yocto sample code): MACHINE = "qemux86-64" require conf/multilib.conf MULTILIBS = "multilib:libx32" DEFAULTTUNE_virtclass-multilib-libx32 = "x86-64-x32" We fail to compile simple CPP programs because CPP cannot find relevant header files, looking for them in a non-existing place. To fix this, we create a symlink of the name CPP expects and point it to the corresponding existing directory. [YOCTO#10354] [YOCTO#10380] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-08libgcc-common.inc: Fix broken symlinks for multilib SDKJuro Bystricky
This patch fixes broken "32" symlinks for multilib settings: MACHINE = "qemuarm64" require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "armv7a" and MACHINE = "qemux86-64" require conf/multilib.conf MULTILIBS = "multilib:libx32" DEFAULTTUNE_virtclass-multilib-libx32 = "x86-64-x32" [YOCTO#8642] [YOCTO#10380] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-07gcc-configure: Add mipsisa{32, 64}r6{el, } supportZubair Lutfullah Kakakhel
Add support for MIPS Release 6 ISA Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-30gcc-cross: Stop target recipes depending on SDK_SYSRichard Purdie
gcc-cross target recipes should not depend on SDK_SYS but started to after recent changes. Remove the dependency to stop this (its caused by shared code in do_install). The compiler names contain SDK_SYS so changes would be correctly handled via other means. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-29cross-canadian/libgcc-common: Fixes for arm multilibRichard Purdie
Arm is unusual in that we force it to "linux-gnueabi" and "linux" doesn't build. This was causing problems for multilib configurations which were assuming "linux" was the default compiler rather than linux-gnueabi. This change does two things, ensures symlinks are generated for linux-gnueabi and also adapts the libgcc code to account for the difference on arm. It still needs to immediately expand/save TARGET_VENDOR but we defer deciding what TARGET_OS should be until we know TARGET_ARCH (which the multilib code may change). [YOCTO #8642] Note that sanity tests of a 32 bit arm multilib still break due to issues with the kernel headers on a mixed bit system. This looks to be a general headers issue for the platform though and a different type of bug. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-28SDK: Allow changing SDKMACHINE without wiping TMP folderJuro Bystricky
When changing SDKMACHINE, we may encounter an error forcing us to wipe the TMP folder. Since only SDK_ARCH is captured in the PN of the crosssdk recipes, changes to SDK_OS result in conflicts. Eventually we hit the error: ERROR: ...: The recipe <...> is trying to install files into a shared area when those files already exist. The build has stopped as continuing in this scenario WILL break things This patchset addresses the problem by SDK_SYS as the recipe name suffix instead of SDK_ARCH. [YOCTO #9281] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-20gcc-configure: Enable initfini-arraySaul Wold
This adds the correct support for initfini-array which replaces .init and .fini with .init-array and .fini-array. There is no appreciable size difference with this change. The change is needed since configure will not correctly detect support when building cross-compilers. Signed-off-by: Haitao Huang <haitao.huang@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-03gcc-runtime.inc: add CPP support for mips64-n32 tuneJuro Bystricky
This patch fixes the problem where the CPP compiler cannot find include files. The compiler is configured to look for the files in places that do not exist. When querying the CPP for search paths, we observe messages such as these: multilib configuration: MACHINE="qemumips64" require conf/multilib.conf MULTILIBS = "multilib:lib64 multilib:lib32" DEFAULTTUNE = "mips64-n32" DEFAULTTUNE_virtclass-multilib-lib64 = "mips64" DEFAULTTUNE_virtclass-multilib-lib32 = "mips32r2" ignoring nonexistent directory "<path>/sysroots/mips64-n32-poky-linux-gnun32/usr/include/c++/6.2.0/mips64-poky-linux/32 single lib configuration: MACHINE="qemumips64" DEFAULTTUNE = "mips64-n32" ignoring nonexistent directory "<path>/sysroots/mips64-n32-poky-linux-gnun32/usr/include/c++/6.2.0/mips64-poky-linux/ To fix this, create a symlink of the name CPP expects and point it to the corresponding "gnun32" directory. [YOCTO#10142] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-25gcc: Update to final 6.2.0 releaseKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-19gcc: Upgrade to 6.2 RC1Khem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2016-07-25gcc: Don't use vectorized builtins when Neon is not thereKhem Raj
Fixes [YOCTO #9991] Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-25gcc: Fix libgcc unresolved symbols with PIE on muslKhem Raj
Fixes [YOCTO #9772] Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-20gcc-cross: default linker hash style to sysvChristopher Larson
We explicitly set the hash style to gnu in our LDFLAGS. Setting the default to this in the toolchain, while convenient, actually hides bugs, as a failure to obey LDFLAGS isn't noticed. By removing this, it's not dissimilar to how we poison the sysroot -- rather than relying on the default, notice right away if somoeone isn't obeying the needed flags. This will result in a failure to obey LDFLAGS causing a GNU_HASH QA failure, which is what's often seen with external toolchains. This brings us all on the same page, and makes sure a failure to obey LDFLAGS is seen early. This is limited to cross, to retain ease of use for SDKs. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-12gcc: CVE-2016-4490Armin Kuster
v2: add missing .inc changes add YP bug # to patch [Yocto #9632] not in 6.1.1 so back porting. Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-12gcc-runtime: add SUMMARY valuesPaul Eggleton
It's useful to know what the various libraries are that get produced by gcc-runtime, as well as to have a specific SUMMARY for the recipe. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-12gcc: add runtime packages to RRECOMMENDSPaul Eggleton
In order to use certain features of gcc, you need the corresponding runtime library. It seems to me that these ought to be installed by default when installing the compiler since they are required if certain command line options are used, so add them to RRECOMMENDS. I used RRECOMMENDS since some of these packages may or may not exist depending on architecture and build options; additionally it makes it possible to use BAD_RECOMMENDATIONS if you really want to exclude them. The impact of this isn't too bad in the context of an image providing on-target compilation - about a 30MB increase in size for an image containing gcc and g++. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-12libgcc: remove duplicate configure optionsAndre McCurdy
The original fix [1] was made redundant by the followup [2]. [1] http://git.openembedded.org/openembedded-core/commit/?id=d774bb2d10f2c05900f87dcc53f073433ca02121 [2] http://git.openembedded.org/openembedded-core/commit/?id=d7799a17d5e802db3f8d16bdc824aae81538e675 Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-08gcc: remove GCC 4.9Ross Burton
Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-08gcc: remove unused patchRoss Burton
Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-08gcc-5.4: Fix hang with mmusl option on cmdlineKhem Raj
When using -m32 -mmusl options in this order, gcc hangs in parsing the options decode_cmdline_options_to_array() the reason is that we have broken the link when adding mmusl options, the order of specifying libc was not kept in order as a result it was unable to contruct the array correctly and ended in parse hang. We fix the options to specify the order properly. Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-01gcc5: Upgrade to gcc 5.4Khem Raj
Drop patches which has been applied to gcc5 branch until 5.4 release Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-06-15gcc: make sure header path is set correctlyAnuj Mittal
We're setting the native header paths in do_configure_prepend, and don't need to set them again here. This results in gcc-target not being able to locate the headers and not being able to detect glibc version, which in turn results in SSP support not getting detected even though it's available in libc. Signed-off-by: Anuj Mittal <anujx.mittal@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-06-03gcc: fix upstream check for 5.x versionAlexander Kanavin
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-30gcc: Backport nios2 gcc ICE fixMarek Vasut
Backport a patch from mainline gcc 5 branch to fix ICE triggered when cross-compiling libdrm for nios2 architecture. The same ICE is fixed in gcc6 already. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-17gcc: Security fix CVE-2016-4490Armin Kuster
Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-17gcc: Security fix CVE-2016-2226Armin Kuster
Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-17gcc: Security fix CVE-2016-4489Armin Kuster
Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-17gcc: Security fix CVE-2016-4488Armin Kuster
Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-14gcc 4.9: backport gperf fixesDan McGregor
From: Daniel McGregor <daniel.mcgregor@vecima.com> gperf was being used in a way that generated files don't conform to the language standard. Backport the fix from upstream. This is required to build these GCC versions when the host compiler is GCC 6. Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-14gcc-5.3: backport gperf fixesDan McGregor
From: Daniel McGregor <daniel.mcgregor@vecima.com> gperf was being used in a way that generated files don't conform to the language standard. Backport the fix from upstream. This is required to build these GCC versions when the host compiler is GCC 6. Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-13gcc-runtime, libgcc: Symlink c++ header and startup files in target_triplet ↵Khem Raj
for SDK use We build SDKs such that gcc-cross-candian is built for only one target *-*-linux and then use -muclibc or -mmusl to let it compile code for other libc variants. This works fine when libc = glibc however it does not work for c++ programs when libc != glibc since there are c++ headers installed under ${includedir}/c++/${BINV}/${TARGET_SYS} which is fine when gcc-runtime and gcc-cross-candian uses same --target options gxx includedir searches in right triplet, but it fails with musl/uclibc since gcc will look for glibc based triplet but gcc-runtime will install them under musl/uclibc triplet. This patch symlinks the musl/uclibc triplet to glibc triplet when libc != glibc This fixes SDKs for musl/uclibc Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-13libgcc: Ensure that gcc configure options are passed to libgcc tooKhem Raj
libgcc uses certain options from EXTRA_OECONF as well, curently we are ignoring them, as a result we do not configure libgcc to match cross gcc in some cases e.g. ppc/musl should have used 64bit long doubles but it went for 128-ldbls which is default, works on glibc but not on musl Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-13libgcc: Ensure that gcc configure options are passed to libgcc tooKhem Raj
libgcc uses certain options from EXTRA_OECONF as well, curently we are ignoring them, as a result we do not configure libgcc to match cross gcc in some cases e.g. ppc/musl should have used 64bit long doubles but it went for 128-ldbls which is default, works on glibc but not on musl Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-13gcc: Add gcc6 recipesKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-13gcc-target.inc: Use SYSROOT_DIRS_BLACKLIST to exclude dirs from sysrootPeter Kjellerstedt
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-11gcc: obey ldflags in the link of libgccChristopher Larson
Explicitly obey it, the way it should, rather than only relying on --with-linker-hash-style. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-04-29gcc-sanitizers: Depend on target gccJussi Kukkonen
Without this the target gcc might not be in the sysroot leading to configure failure. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-14gcc-common.inc: String format tweak for available tunesnoel eck
Small change to python string formatting for error logging. Previously, tune and availtunes would print out at the end of the log message. This change allows them to print out in the correct locations of the error string. Signed-off-by: noel eck <kceleon@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-03-30gcc: Fix musl ldso name for mips64Khem Raj
Now we have mips64 port of musl and there is a name for ldso, backport the fix from upstream gcc master Signed-off-by: Khem Raj <raj.khem@gmail.com>
2016-03-30gcc-5.3/gcc-4.9: -fdebug-prefix-map support to remap relative pathHongxu Jia
For relative path in DWARF, -fdebug-prefix-map could not remap it, so translate to real path before mapping. [YOCTO #9305] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-29gcc: Backport fixes for musl ssp configurationKhem Raj
We were trying to inject cached configure variables via EXTRA_OECONF, but that was not working due to the fact that gcc configure is called recursively via makefiles and hence these were getting lost. These backports from master fixes the problem by defining the options in configure itself dl_iterate_phdr is provided by musl as well, so lets not depend on glibc defines like inhibit_libc alone Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-20gcc-5.3/gcc-4.9:Reuse -fdebug-prefix-map to replace -ffile-prefix-mapHongxu Jia
The oe-core may use external toolchain for compiling, which did not support -ffile-prefix-map. Since we use -fdebug-prefix-map to do the same thing, so we could reuse it to replace -ffile-prefix-map. [YOCTO #7058] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-03-20gcc-5.3/gcc-4.9:replace build path with target path in __FILE__Hongxu Jia
Similar -fdebug-prefix-map, add option -ffile-prefix-map to map one directory name (old) to another (new) in __FILE__, __BASE_FILE__and __builtin_FILE (). With this patch, it fixes build path issue which caused by __FILE__. We do not need to use relative path to compile any more. [YOCTO #7058] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70268 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-03-20gcc-runtime.inc: set LICENSE for all gcc-runtime packagesAndre McCurdy
LICENSE_${PN} doesn't apply to all gcc-runtime packages. Set LICENSE instead. Without this fix, gcc-runtime packages such as libstdc++ are excluded from rootfs for builds which blacklist GPLv3. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-03-12gcc: Fix the license on GNU OpenMPHelio Chissini de Castro
Poky jethro has libgomp ( GNU OpenMP ) license marked as GPL-3.0, where's in fact the correct is GPL-3.0 with GCC Library Runtime Exception As stated on https://github.com/gcc-mirror/gcc/blob/master/libgomp/libgomp.h header license: ... Under Section 7 of GPL version 3, you are granted additional permissions described in the GCC Runtime Library Exception, version 3.1, as published by the Free Software Foundation. ... Signed-off-by: Helio Chissini de Castro <helio.castro@bmw-carit.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-03-12Revert "gcc: Fix the license on GNU OpenMP"Ross Burton
This reverts commit 892fbe373c5cff7b2f28b58aa2508b47e53d3e63.
2016-03-11gcc: Disable libitm for MicroBlazeNathan Rossi
Disable libitm as it is not supported on MicroBlaze. Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-03-11gcc: Fix the license on GNU OpenMPHelio Chissini de Castro
Poky jethro has libgomp ( GNU OpenMP ) license marked as GPL-3.0, where's in fact the correct is GPL-3.0 with GCC Library Runtime Exception Signed-off-by: Helio Chissini de Castro <helio.castro@bmw-carit.de> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-10gcc: Disable libitm for nios2Marek Vasut
The libitm is not supported on nios2, so disable it. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Ley Foon Tan <lftan@altera.com> Cc: Richard Purdie <richard.purdie@linuxfoundation.org> Cc: Ross Burton <ross.burton@intel.com> Cc: Thomas Chou <thomas@wytron.com.tw> Cc: Walter Goossens <waltergoossens@home.nl> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-06gcc-runtime.inc: disable libitm for little endian MIPS tooAndre McCurdy
libitm is already disabled for big endian MIPS, but needs to be disabled for little endian MIPS targets too. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>