summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/gcc
AgeCommit message (Collapse)AuthorFiles
2014-04-10gcc: Fix a race over unwind.hRichard Purdie2
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 Sardan1
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 Jansa1
* 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 Sardan1
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 Paraschiv1
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 Burton2
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 Sardan1
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 Zanussi2
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 Sardan3
[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 Freyther2
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 Purdie55
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 Eggleton2
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 Eggleton2
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 Purdie1
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 Purdie1
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 Yang1
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 Yang1
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 Purdie1
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 Purdie4
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 Purdie1
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 Purdie1
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 Purdie1
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 Raj2
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 Liu1
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 Purdie1
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 Purdie2
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-10-04cross-canadian: Fix TUNE_PKGARCH referencesRichard Purdie1
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 Purdie1
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 Purdie1
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 Purdie3
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 Jansa1
* 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 Purdie1
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 Purdie2
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 Purdie1
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 Guo2
* 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 Purdie1
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 Purdie3
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 Purdie1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-cross.inc: Clean up after mergeRichard Purdie1
* 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 Purdie3
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 Purdie4
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-*-cross.inc: Fold common configuration into gcc-cross.incRichard Purdie3
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-target: Combine gcc-target-configure.inc, gcc-target-package.inc and ↵Richard Purdie4
other common code Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22libgcc: Move common code to libgcc.incRichard Purdie3
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-runtime: Fold common configuration into gcc-configure-runtime.incRichard Purdie3
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-cross-initial: Fold common configuration into gcc-cross-initial.incRichard Purdie3
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22gcc-cross: Fold common configuration into gcc-cross.incRichard Purdie3
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22bitbake.conf/classes/gcc: Don't hardcode -nativesdkRichard Purdie3
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 Purdie3
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 Purdie1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>