summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/gcc/gcc-runtime.inc
AgeCommit message (Collapse)AuthorFiles
2017-01-26gcc: Clean up unnecessary variable confusionRichard Purdie1
SDKPKGSUFFIX could only really be "nativesdk" and TARGET_SYS never contains that so the code manipulating TARGET_SYS is pointless. I suspect this once worked against MULTIMACH_TARGET_SYS which would be a different question but it no longer does. Its been cut and pasted everywhere. This patch cleans up the variable references to make things a little more readable. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-26gcc: Split builddir saving into its own sstate taskRichard Purdie1
When we stashed the gcc build directory for use in generating the various runtimes we were being lazy and just used the staging directory. With recipe specific sysroots this means we're copying a large chunk of data around with the cross compiler which we don't really need in most cases. Separate out the data into its own task and inject this into the configure step. We have to do that here since autotools will wipe out ${B} if it thinks we're rebuilding and we therefore have to time its recreation after that. This also takes the opportunity to remove some pointless (as far as I can tell) conditionals from the do_install code. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-15gcc-runtime: Reduce duplication in MIPS variants.Zubair Lutfullah Kakakhel1
Reduce duplication in MIPS variants now that the MACHINEOVERRIDES variable is defined Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-10-08gcc-runtime.inc: Add CPP support for x86-64-x32 tuneJuro Bystricky1
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-07gcc-configure: Add mipsisa{32, 64}r6{el, } supportZubair Lutfullah Kakakhel1
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-03gcc-runtime.inc: add CPP support for mips64-n32 tuneJuro Bystricky1
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-07-12gcc-runtime: add SUMMARY valuesPaul Eggleton1
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-05-13gcc-runtime, libgcc: Symlink c++ header and startup files in target_triplet ↵Khem Raj1
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-03-20gcc-runtime.inc: set LICENSE for all gcc-runtime packagesAndre McCurdy1
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 Castro1
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 Burton1
This reverts commit 892fbe373c5cff7b2f28b58aa2508b47e53d3e63.
2016-03-11gcc: Disable libitm for MicroBlazeNathan Rossi1
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 Castro1
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 Vasut1
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 McCurdy1
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>
2016-03-02gcc: Add support for atomic opertions (libitm) where availableMark Hatle1
GCC 4.7 and newer have supported various automic operation directives, however these have not been previously enabled. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-28gcc: use relative path for configure scriptHongxu Jia1
The absolute path (/path/to/configure) caused __FILE__ to be an absolute path. If 'assert' invoked, it uses __FILE__, and build path would be in elf files. In assert.h ... .# define assert(expr) \ ((expr) \ ? __ASSERT_VOID_CAST (0) \ : __assert_fail (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION)) ... Which triggered buildpaths QA issue: ... | libgcc-5.3.0: File work/core2-64-poky-linux/libgcc/5.3.0-r0/packages-split/ libgcc-dev/usr/lib64/x86_64-poky-linux/5.3.0/libgcc.a in package contained reference to tmpdir [buildpaths] ... Use relative path to run configure can fix the problem. [YOCTO #7058] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-20gcc-runtime.inc: provide libquadmathIoan-Adrian Ratiu1
libgfortran's build fails with "ld: cannot find -lquadmath" unless libquadmath is added to gcc-runtime's RUNTIMETARGET Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-19gcc-runtime: switch to removal override syntax to modify CXXFLAGSJoshua Lock1
The use of immediate expansion can cause issues when trying to override variables, further the removal override syntax is clearer than oe_filter_out () — switch to using removal override syntax instead. Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-12-22gcc5: Upgrade gcc-5.2 -> gcc-5.3Khem Raj1
Minor bugfix upgrade to gcc 5.3 for detailed list of fixes in 5.3 see https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&list_id=132738&resolution=FIXED&target_milestone=5.3 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-09-26gcc-runtime: Add multilib C++ header mappingRichard Purdie1
The SDK was unable to find the C++ header pieces correctly since its using a generic compiler, not one specifically targeting the multilib vendor prefix. This adds in the right mapping to ensure multilib SDKs work as expected. This fixes multilib SDK automated tests. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-23gcc-runtime: Remove libgfortran data from receipeDaniel Dragomir1
Remove libgfortran packages from PACKAGES list as long as libgfortran has separate receipe since commit 5bde5d9b39ea67f19a1a6aedd0c08c6cfedcbe5f gcc: Allow fortran to build successfully in 4.8 Otherwise, when fortran support will be enabled in the compiler, both lingfortran and gcc-runtime receipes will create the same files and will try to install them. This will cause errors: ERROR: The recipe libgfortran is trying to install files into a shared area when those files already exist. Those files and their manifest location are: ... Please verify which recipe should provide the above files. Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-12-19gcc runtime: specify license on a per package basisJoe Slater1
It can be alarming to attempt to exclude GPLv3 from an image but find that libstdc++ and libgcc still show it. We indicate the license for each package to show libraries that really are just GCC-3.0-with-GCC-exception. Signed-off-by: Joe Slater <jslater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-10-24gcc: poison default sysroot pathRichard Purdie1
Various pieces of the code assume that the --sysroot option gets passed into the compiler tools. By having a "sane" default, we don't always spot when this occurs and this can later show up as breakage in sstate, or in usage of the external toolchain. We've long since talked about poisoning the default such that it will break unless the correct option is specified. This patch does just that. If this patch causes something to fail to build, it most likely means the various compiler flags and commands are not correctly being passed through to the underlying piece of software and that there is a real problem that needs fixing, its not the fault of this patch. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-10-06gcc-runtime: Add linux-gnuspe symlink to fix c++ headersRichard Purdie1
Some architectures can mix different TARGET_OS values, in most cases we just use one but in the ppc case, can use two different values. In this case, to use one toolchain with both, we need to ensure the symlinks exist. This isn't ideal but does fix the ppc toolchains for the release, after which better ways of handling this can be investiaged. Without this, failures in the C++ toolchain are seen. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15gcc: remove outdated configuration optionPeter A. Bigot1
--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: recipe whitespace changesPeter A. Bigot1
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-07-10gcc: Ensure c++ includes are in /usr/include/c++/${BINV}Richard Tollerton1
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-04-30gcc: Drop ARCH_FLAGS_FOR_TARGET usageRichard Purdie1
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-30binutils/gcc/gdb: Add TARGET_ARCH to PN for all cross recipesRichard Purdie1
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-25gcc: Convert to use hardlinkdirRichard Purdie1
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>
2013-12-05gcc: Allow fortran to build successfully in 4.8Richard Purdie1
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-09-06gcc-runtime: Add packaging for libgfortran (and also tweak others)Richard Purdie1
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-08-22gcc-*-runtime.inc: Fold configuration into gcc-runtime.incRichard Purdie1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>