aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc
AgeCommit message (Collapse)Author
2014-07-10gcc: Ensure c++ includes are in /usr/include/c++/${BINV}Richard Tollerton
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> Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2014-06-29recipes-devtools: fix segfault in lib32-gcc with "." multilib_dirPaul Gortmaker
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. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-25gcc-cross-canadian: Add configure-target-libgccMark Hatle
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. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-17gcc-configure-common: Address problems with gengtypeRichard Purdie
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] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-01gcc: Clean up configure_prepend and fix for mingwRichard Purdie
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). Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-30gcc, uclibc: Add/Fix Upstream-Status in patchesKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-29gcc: add patch to fix errors with Decimal64 typeAlexandru-Cezar Sardan
[OE-core bug #6270] - https://bugzilla.yoctoproject.org/show_bug.cgi?id=6270 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>
2014-05-13gcc: remove usage of FILESPATHPetter Mabäcker
Fixes [YOCTO #4497] Usage of FILESPATH is discouraged, since it can make recipes harder to bbappend. Instead FILESEXTRAPATHS should be used to extend the path. Signed-off-by: Petter Mabäcker <petter@technux.se> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-08gcc: Handle uclibc linker relocation for multilib supportRichard Purdie
We need to handle the UCLIBC_* linker variables in the same way as we do the GLIBC_* ones to allow uclibc multilib to work properly. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-07python3/gcc/autoconf: Fix Upstream-Status in some patches I authoredRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-05gcc: Add 4.9 recipesKhem Raj
(From OE-Core rev: f051216ea373f166016b15bbd2a2a6f136430372) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-03gcc-common: Ensure checksums don't change to match old behaviourRichard Purdie
There is a fix about to go into bitbake to ensure that datastores being accessed with a name other than "d" are correctly reflected in checksums. This will cause this function to add in a number of dependencies we don't want. These do need to be properly unravelled in due course but would only really affect multilib builds. For now therefore just exclude the variables as per the old behaviour. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-01Add texinfo.bbclass; recipes that use texinfo utils at build-time inherit it.Max Eliaser
The class itself currently does nothing. The idea is to mark all recipes that make use of the texinfo utilities. In the future, this class could be used to suppress the generation/formatting of documentation for performance, explicitly track dependencies on these utilities, and eliminate Yocto's current dependency on the host system's texinfo utilities. Signed-off-by: Max Eliaser <max.eliaser@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-01gcc-common: Only apply fpu settings to target gccRichard Purdie
Within the OE build environment, we supply the correct fpu settings. These only need to be spelt out for the on-target gcc. Doing this means the checksums for the core compiler don't depend on the fpu settings. We exclude the compiler tunes for similar reasons, it doesn't need to influence the compiler build. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-01gcc-cross: Drop TARGET_CC_ARCHRichard Purdie
Since we no longer build target libs within gcc-cross, we can drop the TARGET_CC_ARCH flags and hence make it independent of tune. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-30gcc: Drop ARCH_FLAGS_FOR_TARGET usageRichard Purdie
As far as I can tell this variable is now completely unneeded. It would only ever get used in target builds and these are now correctly done in the target environment namespace, not any of our cross environments. As such, CC and other variables contain the correct compilers and other tune options and these are correctly picked up when building libgcc, libstdc++ and others. I tried to figure out where else these would make any sense and couldn't find anything. Builds appear fine without them so lets drop the complexity including the patch adding in this flag to gcc. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-30gcc-common/gcc-configure-common: Move gnu-configize to its own shared taskRichard Purdie
This command modifies ${S} and can race against other tasks running do_configure and having the scripts disappear from under them. To avoid this move to its own task and work on the shared work directory as a common task. It needs to be a python task to avoid lots of shell exported variables as dependencies. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-30gcc-target: Limit compile to host targets, don't build runtimes.Richard Purdie
Currently the gcc builds are building copies of the target libraries that we never use (it isn't installed in do_install). This is a rather pointless waste of cpu time. Instead just compile the host targets. Comparing the package output of this compared to a previous build shows that the unwind.h header is missing since its provided by gcc. Fix this simply by copying it in. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-30binutils/gcc/gdb: Add TARGET_ARCH to PN for all cross recipesRichard Purdie
This allows them to co-exist together in the native sysroot, with one set of cross tools per target architecture. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-25Globally replace 'base_contains' calls with 'bb.utils.contains'Otavio Salvador
The base_contains is kept as a compatibility method and we ought to not use it in OE-Core so we can remove it from base metadata in future. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-25Globally replace oe.utils.contains to bb.utils.containsOtavio Salvador
BitBake has the exact same code as oe.utils.contains so there's no reason to duplicate it. We now rely on the bb.utils.contains code for metadata. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-25gcc-cross-initial: Separate out libgcc-initialRichard Purdie
Its useful to separate out the native (cross) binaries from the target compilation. We already do this for libgcc, this now takes the same approach for -initial. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-25gcc-cross: Improve handling of unwind.hRichard Purdie
Rather than building the whole of libgcc to obtain the unwind.h header file, simply configure it and then install the file. This avoids copying chunks of data around when we don't need to and building the same thing twice. After doing this we need to make sure the target build directory exists in the libgcc case since it will no longer be created automatically. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-25libgcc: Spit out common code into libgcc-common.incRichard Purdie
Prepare the ground for the creation of libgcc-initial by splitting common libgcc code into a libgcc-common.inc file. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-25gcc: Convert to use hardlinkdirRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-10gcc: Fix a race over unwind.hRichard Purdie
There are two places unwind.h is installed, even by the Makefile's admission. Disable one of them to prevent build failure races. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-04gcc: enable multilib setup for powerpc64 archAlexandru-Cezar Sardan
Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-04gcc-target: remove infodirMartin Jansa
* it uses autotools but doesn't call autotools_do_install * fixes QA warning: gcc-4.8.2: The /usr/share/info/dir file is not meant to be shipped in a particular package. Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-31gcc: changed multilib options handlingAlexandru-Cezar Sardan
Duplicate parameters in the tune args are repeated in the MULTILIB_OPTIONS variable. This leads to incorrect configurations if the order of the parameters is bad. (Eg. "mhard-float m32/mhard-float m64" leads to an incorrect config) This patch finds the common parameters and removes the duplicates. Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-21gcc-runtime: Build libatomicCosmin Paraschiv
GCC 4.8 includes a new runtime library, libatomic, which supports atomic operations not supported by hardware or the OS. Build it, so other packages can link against it, if needed. Signed-off-by: Cosmin Paraschiv <cosmin.paraschiv@freescale.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07gcc-cross: don't use oe.path.relativeRoss Burton
Instead of using oe.path.relative, use the Python Standard Library function os.path.relpath. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2014-03-07libgcc: make sure symlinks are created in a valid directoryAlexandru-Cezar Sardan
When adding extra symlinks, we have to make sure that the directory that the links are created in is valid. Added a check for this. This is an incremental addition to commit 97f2a81d6796ddaf7bbaab86c2ab9039673c732c Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2014-03-07gcc: Add upstream fix for gcc bug 58595Tom Zanussi
Fix for internal compiler error hit when building lttng-tools_4.2.0: kernel-consumer.c:324:1: internal compiler error: in gen_movsi, at config/arm/arm.md:5539 Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-28gcc: Enable SPE & AltiVec generation on powepc*linux target.Alexandru-Cezar Sardan
[ADT bug #5761] -- https://bugzilla.yoctoproject.org/show_bug.cgi?id=5761 Also this patch adds symlinks to libgcc such that a GCC configured by passing the target parameter without LIBCEXTENSION and ABIEXTENSION specifiers to find the correct startup files from a libgcc configured with these variables. Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2014-01-31gcc: Include patch scheduled for GCC 4.8.3 to fix epilogue on ARMHolger Hans Peter Freyther
GCC 4.8.0, 4.8.1 and 4.8.2 can generate broken epilogues for the ABI used by the kernel. Apply the patch that is included for GCC 4.8.3 from http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854. The issue was found on Yocto/Dora and the patch should be backported to this branch. A kernel built with Dora's GCC 4.8.1 misbehaved on: while true; do (for i in `seq 1 100`; do echo "Log message... $RANDOM"; done) | logger; done busybox's syslogd would from time to read a huge negative value and then exit, strace would get stuck waiting on a syscall. After this patch it appears to work better. Signed-off-by: Holger Hans Peter Freyther <holger@moiji-mobile.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-02gcc: Drop 4.7.2 version since 4.8 is stable nowRichard Purdie
We've had 4.8 around for a while now, I'm not aware of any issues with it so we can drop the older 4.7 version. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-02Basic recipe formatting fixesPaul Eggleton
Fix statement indenting and spacing issues that I happened to notice. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2014-01-02Replace one-line DESCRIPTION with SUMMARYPaul Eggleton
A lot of our recipes had short one-line DESCRIPTION values and no SUMMARY value set. In this case it's much better to just set SUMMARY since DESCRIPTION is defaulted from SUMMARY anyway and then the SUMMARY is at least useful. I also took the opportunity to fix up a lot of the new SUMMARY values, making them concisely explain the function of the recipe / package where possible. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-12-20sstate: Convert to use ':' as a filename sperator and use SSTATE_SWSPEC globallyRichard Purdie
Currently the code has problems differentiating between "gcc-cross" and "gcc-cross-initial" sstate files. We could add in a ton of special casing but tests show this isn't scaling well. Using a more unique separator resolves the issue. The choice of which separator to use is a hard one. We need something which isn't commonly used in PN, PV, PR, *_OS and *_ARCH which rules out '-', '_' and it needs to work ok with webservers/http which makes ';' and '%' harder. The change also sets SSTATE_SWSPEC globally since writing out differently named siginfo files for the fetch/unpack/patch tasks is a waste of diskspace, the hashes match for all PN in the majority of cases and if they don't, its not a big issue as the hash is different. This makes the results from sstate debugging more understandable. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-18sstate/gcc: Fix shared workdir handling for siginfo filesRichard Purdie
For a shared workdir, any one of the fetch/unpack/patch tasks may run yet the PN and architecture fields in SSTATE_PKGSPEC may differ. This makes looking up the appropriate siginfo file near impossible. I've tried several different ways of resolving this and this is the neatest solution I could find, its still rather ugly. I believe the usefulness of better sstate debugging outweighs the ugliness of the code. This patch also changes the sstate_checkhashes() code to look for siginfo files rather than the actual sstate packages themselves. This means the function can be used in other contexts to find info files for tasks that may not have sstate data. It is assumed that sstate mirrors will have both files available. This is done to allow bitbake to query whether tasks have matching signatures in sstate directories or not. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-18gcc-4.7/gcc: disable sdt from configure.ac to keep compatibility with configureRobert Yang
We had disabled the sdt from configure, let's also disable it from confgure.ac to keep them compatible. BTW, the libstdc++-v3 of gcc-4.7 doesn't use the sdt, so we don't need to edit libstdc++-v3/configure as gcc-4.8. NOTE, this commit edit the patch gcc-4.7/disablesdt.patch directly. [YOCTO #5657] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-18gcc-4.8/libstdc++-v3: disable sdtRobert Yang
We may meet such an error when building gcc/libstdc++-v3: gcc-4.8.1/libstdc++-v3/libsupc++/unwind-cxx.h:41:21: fatal error: sys/sdt.h: No such file or directory We already have a patch to disable the sdt for gcc, we also need disable it for libstdc++-v3. BTW, we need edit both configure.ac and configure to make them keep compatible. NOTE, this commit edit the patch gcc-4.8/0031-Disable-sdt.patch directly. [YOCTO #5657] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-15gcc-crosssdk.inc: Fix missing dependencies (such as libmpc-native)Richard Purdie
Without this sstate builds can fail with missing dependencies. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-05gcc: Allow fortran to build successfully in 4.8Richard Purdie
gcc 4.8 fortran presents some challenges: * libquadmath headers need to be in the libexec include dir. It turns out to be easiest just to manually do this. * libgfortran configure needs libquadmath to be compiled. This means a separate recipe is needed (the alternative is gross hacks) * the libtool uses to link libgfortran doesn't have our improved rpath handling and puts bogus RPATHS into the libraries. We can avoid this by tweaking libtool with sed. This patch resolves those issues. Any user of fortran does need to DEPEND on libgfortran in order to trigger it to build but this shouldn't be a major issue. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-05classes/recipes: More optimal DISTRO_FEATURES referencesRichard Purdie
Using the contains function results in more optimal sstate checksums resulting in better cache reuse as we as more consistent code. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-02gcc-cross-canadian: Fix fortran buildRichard Purdie
When fortran was enabled, builds were failing due to a extra files. For now we can remove these and avoid the build failure. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-29base/gcc-common: Ensure umask setting is consistent for shared workdirRichard Purdie
gcc has cross and target components with a shared workdir. The unpack umask settings need to match for all of these. We need to use strings in each case to ensure the sstate code matches them correctly. This patch tweaks various things to ensure the change adding the unpack umask change doesn't break the compiler builds. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-21gcc: Upgrade to 4.8.2Khem Raj
The details for bug fixes between 4.8.1 and 4.8.2 is here http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.2 Remove the patches that were applied upstream Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12gcc-common: Enable building multiarch mips gccLei Liu
MIPS gcc is not configured with multiarch enabled. This causes compiler generates local label with $ prefix, which is specified in default o32 abi. It is not recognized as local symbol by n64 assembler, so we get a lot of unexpected external symbols. We should configure MIPS gcc with --enable-targets=all, as for other archs. Signed-off-by: Lei Liu <lei.liu2@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-10-30cross-canadian: Handle powerpc linux verses linux-gnuspeRichard Purdie
PowerPC toolchains can use the OS "linux" or "linux-gnuspe". This patch links them together so the one cross-canadian toolchain can support both. GCC_FOR_TARGET is set for the GCC recipe as otherwise configure can pick up an incorrect value. [YOCTO #5354] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com>