aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc
AgeCommit message (Collapse)Author
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>
2013-10-11gcc: Fix strange C++ repo issuesRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-10-04cross-canadian: Fix TUNE_PKGARCH referencesRichard Purdie
The cross-canadian compilers are now build once per architecture but were being installed into tune specific locations which is incorrect. This adjusts things so they are make TARGET_ARCH specific. We gain the tune specific parts from the target sysroot which remains tune specific, the compiler and tools are independent ot that. binutils/gcc require sysroot options but since we reset at runtime, these shouldn't have dependencies in the sstate checksums. They are therefore also excluded. With these patches, switching machines does not result in a rebuild of *-cross-canadian and the compiler is correctly located and referenced in the target images. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-10-04gcc-common: Improve fpu code checksum dependenciesRichard Purdie
We only care about the end result in this case, not the specific inputs that went into determining the gcc option. This change updates the code to reflect that. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-26gcc/libtool/perl: Fix various path to sed-native problemsRichard Purdie
If sed-native is built before these programs, hardcoded paths to sed-native can end up in scripts and other parts of the system which may cause issues if they are later used from sstate and sed-native is not installed. To avoid this, this patch changes the global site configuration to specify that plain "sed" is fine to be used. We need to spell this out for gcc since it doesn't see the site files since we don't autoreconf it. We can remove the values from libtool. We tell perl to use "/bin/sed" since it requires a path and the system sed should be just fine for it. [YOCTO #4971] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-22gcc-target: Fix libatomic dependency tracking issuesRichard Purdie
The --enable-dependency-tracking option was added to workaround build issues in libatomic. This fixes that build problem properly and removes the flag since the dependency tracking code appears to be full of races which are much deeper and harder to fix. As per the automake manual, dependency tracking is only useful and worth the build performance cost if you are doing more than one compile of the same source code which in most cases we are not so this is a good thing anyway. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-20gcc-4.8: temporary disable thumbMartin Jansa
* temporary work around for build issue on armv4t: | cp/decl.o: In function `bad_specifiers': | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7171:(.text.unlikely+0x24): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7173:(.text.unlikely+0x32): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7176:(.text.unlikely+0x3e): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7180:(.text.unlikely+0x4c): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7182:(.text.unlikely+0x5a): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7185:(.text.unlikely+0x66): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7189:(.text.unlikely+0x74): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7191:(.text.unlikely+0x82): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7194:(.text.unlikely+0x8e): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7198:(.text.unlikely+0x9c): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7200:(.text.unlikely+0xaa): additional relocation overflows omitted from the output | collect2: error: ld returned 1 exit status | make[2]: *** [cc1plus] Error 1 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-13bitbake.conf/package: Collapse PKGDATA_DIR into a single machine specific ↵Richard Purdie
directory Currently we have a hierarchy of pkgdata directories and the code has to put together a search path and look through each in turn until it finds the data it needs. This has lead to a number of hardcoded paths and file globing which is unpredictable and undesirable. Worse, certain tricks that should be easy like a GL specific package architecture become problematic with the curretn search paths. With the modern sstate code, we can do better and construct a single pkgdata directory for each machine in just the same way as we do for the sysroot. This is already tried and well tested. With such a single directory, all the code that iterated through multiple pkgdata directories and simply be removed and give a significant simplification of the code. Even existing build directories adapt to the change well since the package contents doesn't change, just the location they're installed to and the stamp for them. The only complication is the we need a different shlibs directory for each multilib. These are only used by package.bbclass and the simple fix is to add MLPREFIX to the shlib directory name. This means the multilib packages will repackage and the sstate checksum will change but an existing build directory will adapt to the changes safely. It is close to release however I believe the benefits this patch give us are worth consideration for inclusion and give us more options for dealing with problems like the GL one. It also sets the ground work well for shlibs improvements in 1.6. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06gcc-runtime: Add packaging for libgfortran (and also tweak others)Richard Purdie
Add packaging for libgfortran and libquadmath as well as tweak the packaging for libmudflap since it was broken. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-01meta: Don't use deprecated bitbake APIRichard Purdie
These have been deprecated for a long time, convert the remaining references to the correct modules and prepare for removal of the compatibility support from bitbake. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-30gcc-4.8: fix ICE of cross-compile for PowerPC e500v2 targetsChunrong Guo
* http://gcc.gnu.org/bugzilla//show_bug.cgi?id=57717#c7 * fix the segfault issue of dd on e500v2 targets Since double-float is disabled for e500v2 targets build due to ICE of gcc-4.8.1, accordingly %Ld format of sprintf is disabled. Address Bug 4910 - [p1022ds]urandom: segmentation fault Signed-off-by: Chunrong Guo <B40290@freescale.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-08-27gcc-4.8.inc: Allow lto to be configurableRichard Purdie
For some platforms its useful to be able to configure LTO so provide a variable to allow this to happen. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-4.8: Add two patches to deal with cross-canadian build failuresRichard Purdie
See the patch headers for more information about the cross-canadian build failures these patches avoid. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-common.inc: Drop unused LIBGCCS_VAR variableRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-cross.inc: Clean up after mergeRichard Purdie
* Remove the duplicate EXTRA_OECONF_PATHS that is overwritten * Merge the do_compile and do_compile_prepend * Group dependency and configuration variables together Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-cross-canadian: Fold configure-sdk and package-sdk into the main .incRichard Purdie
This also has the advantage of removing the confusing sdk naming which has been purged everywhere else in favour of cross-canadian. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-*-runtime.inc: Fold configuration into gcc-runtime.incRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-*-cross.inc: Fold common configuration into gcc-cross.incRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-target: Combine gcc-target-configure.inc, gcc-target-package.inc and ↵Richard Purdie
other common code Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22libgcc: Move common code to libgcc.incRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-runtime: Fold common configuration into gcc-configure-runtime.incRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-cross-initial: Fold common configuration into gcc-cross-initial.incRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-cross: Fold common configuration into gcc-cross.incRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22bitbake.conf/classes/gcc: Don't hardcode -nativesdkRichard Purdie
Hardcoding -nativesdk as the sdk package architecture is inflexible. We may have multiple different target OS and we need a way to be able to separate them. Turning this into a configurable value allows the flexibility we need to build different SDKMACHINEs with different OS targets. The commit should have no behaviour change, just makes things more configurable. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-cross-canadian: Merge 4.7 and 4.8 recipes into common includeRichard Purdie
This removes duplication and follows the pattern of the other gcc recipes. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-cross-canadian-4.8: Add missing dependency on nativesdk-zlibRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-cross-canadian-4.8: Allow elfutils to be a configurable dependencyRichard Purdie
Some SDK platforms have elfutils support, some do not, therefore allow this to be configured. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc: Drop gcc-cross4.inc, its pointless nowRichard Purdie
The include was useful historically, its not anymore so lets remove it. This should have no functional change except on any layers directly depending on it or gcc-cross.inc but even then it would only impact sh4 and is easily fixed if there was a problem. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-configure-sdk.inc: Don't build target-libgccRichard Purdie
I don't understand why we're building the target libgcc in the canadian-cross build since it should have been built elsewhere. The compiler configuration isn't correct to build a working target libgcc in all cases anyway. To avoid various weird build errors, stop building it. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>