aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc
AgeCommit message (Collapse)Author
2014-09-01recipes: Remove references to eglibcKhem Raj
change use of eglibc related variabled to glibc equivalents Signed-off-by: Khem Raj <raj.khem@gmail.com>
2014-08-15gcc-cross-initial: Put limits.h in gccdir/includeKhem Raj
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. Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15gcc: update compiler architecture to match gcc-runtime (armv6, armv7a)Peter A. Bigot
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 Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15gcc: backport patch affecting Linux kernel buildsPeter A. Bigot
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. Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15gcc: Abstract long double configuration into python functionKhem Raj
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. Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15sdk: change EXTRA_OECONF_FPU to EXTRA_OECONF_GCC_FLOATPeter A. Bigot
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. Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15gcc-target: make --enable-clocale consistent with gcc-runtimePeter A. Bigot
Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15gcc: remove outdated configuration optionPeter A. Bigot
--enable-libunwind-exceptions was removed from gcc at release 3.4.3 about ten years ago. Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15gcc-4.9: Ensure c++ includes are in /usr/include/c++/${BINV}Peter A. Bigot
Apply to gcc 4.9 the recent fix to the --with-gxx-include-dir override. Original OE-Core rev: 5a2ff3e8f7cd7a47a5ab4e581847ecc4df87fca Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15gcc: remove inappropriate patchPeter A. Bigot
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. Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15gcc: recipe whitespace changesPeter A. Bigot
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. Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15gcc-cross-initial: Use good old bfd linker by defaultKhem Raj
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 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-02gcc: Fix gcc-multilib-config comparisonMark Hatle
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... Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2014-08-02gcc: Upgrade 4.9.0 -> 4.9.1Khem Raj
Drop patches which are already available in 4.9.1 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2014-08-02gcc-4.9.inc: fix parallel building failureHongxu Jia
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] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2014-07-25gcc-4.9.inc: fix parallel building failureHongxu Jia
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] 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>
2014-07-25gcc-multilib: Simply/fix MULTILIB_OPTIONS handlingRichard Purdie
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-19gcc: update *LIBC_* linker relocation reglexTing Liu
* 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) 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>
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>