summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/libgcc.inc
AgeCommit message (Collapse)Author
2021-08-02Convert to new override syntaxRichard Purdie
This is the result of automated script conversion: scripts/contrib/convert-overrides.py <oe-core directory> converting the metadata to use ":" as the override character instead of "_". (From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02libgcc.inc: Fix an issue w/ a recursive symlinkMark Hatle
If the OS is not Linux, the code could end up generating a recursive symlink. This can happen because the same symlink can be created twice in a row. If this happenes, the second symlink becomes a link to itself within the directory pointed to by the original link. In order to prevent this, verify that the destination does not already exist. (From OE-Core rev: ef28e5a74d939acc98d6e8e9a0efbeb143b8025f) Signed-off-by: Mark Hatle <mark.hatle@xilinx.com> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-09libgcc: Create linux-musleabihf and linux-gnueabihf symlinksKhem Raj
When we have hard-float ABI enabled, certain tools e.g. llvm/clang expects the hf version of tuples for crt files from libgcc, therefore create a symlink to help the cause. This makes clang work with hard-float defaults on target (From OE-Core rev: f58cf0d0ff05636a70330c54f7e537f9480674c4) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-26gcc: Drop gcc-cross-initial and use gcc-cross insteadRichard Purdie
We need a libgcc to build glibc. Tranditionally we therefore build a non-threaded and non-shared compiler (gcc-cross-initial), then use that to build libgcc-initial which is used to build glibc which we can then build gcc-cross and libgcc against. Firstly, we can drop the glibc dependency from gcc-cross, *if* we make two changes: a) specify the minimum glibc version to support in a configure option b) create a dummy limits.h file so that later when glibc creates one, the headers structure has support for it. We can do this with a simple empty file Once gcc-cross is libc independent, we can use it to build both libgcc-initial and then later libgcc. libgcc-initial is tricky as we need to imitate the non-threaded and non-shared case. We can do that by hacking the threading mode back to "single" even if gcc reports "posix" and disable libc presence for the libgcc-intial build. We have to create the dummy limits.h to avoid compiler errors from a missing header. glibc will fail to link with libgcc-initial due to a missing "exception handler" capable libgcc (libgcc_eh.a). Since we know glibc doesn't need any exception handler, we can safely symlink to libgcc.a. With those changes, gcc-cross can be used in all places and we only need one build of gcc for each architecture. For some reason ifunc was being disabled on mips prior to these changes but afterwards became enabled but caused assertion failures. This is therefore disabled until we can debug that. (From OE-Core rev: 62b7308b8c4d2b439a15a4f7cbc6f823077bb0be) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-30meta: don't use deprecated functions from utils.bbclassRoss Burton
These functions were moved to meta/lib/oe in 2010 and the base_* functions in utils.bbclass were intended to be a short-term compatibility layer. They're still used in a few places, so update the callers to use the new functions. (From OE-Core rev: c97acbd034532895ce57c6717ed1b3ccc7900b0d) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22meta: Remove further uclibc remnants (inc. patches and site files)Richard Purdie
Some of these are clearly dead, e.g. one binutils patch reverts the effects of the earlier one. This also removes the uclibc site files. We now have mechanisms to allow these to be extended from another layer should someone ever wish to do that. (From OE-Core rev: e01e7c543a559c8926d72159b5cd55db0c661434) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-26gcc: Split builddir saving into its own sstate taskRichard Purdie
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. (From OE-Core rev: dcf15ccf3cc9d55e77228ba8d526f967fc9791b4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-13gcc-runtime, libgcc: Symlink c++ header and startup files in target_triplet ↵Khem Raj
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 (From OE-Core rev: fcaaabb401fffcda4db9a7d1f927a2a404e4776d) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-12-16meta: more removals of redunant FILES_${PN}-dbgRoss Burton
In some recipes overly-split -dbg packages were merged into PN-dbg. Unless there's a very good reason, recipes should have a single -dev and -dbg package. (From OE-Core rev: a3b000643898d7402b9e57c02e8d10e677cc9722) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-24libgcc.inc: package baremetal multilib librariesJuro Bystricky
When building libgcc some files and libraries may be built but not packaged. The original code packaged only some explicitly specified files targeting mostly x86. This patch does not discriminate between various targets. It fixes errors such as these: ERROR: QA Issue: libgcc: Files/directories were installed but not shipped in any package: /usr/lib/arm-poky-eabi/4.9.3/thumb /usr/lib/arm-poky-eabi/4.9.3/fpu /usr/lib/arm-poky-eabi/4.9.3/thumb/libgcov.a /usr/lib/arm-poky-eabi/4.9.3/thumb/crtn.o /usr/lib/arm-poky-eabi/4.9.3/thumb/crtend.o /usr/lib/arm-poky-eabi/4.9.3/thumb/crtbegin.o /usr/lib/arm-poky-eabi/4.9.3/thumb/libgcc.a /usr/lib/arm-poky-eabi/4.9.3/thumb/crti.o /usr/lib/arm-poky-eabi/4.9.3/fpu/libgcov.a /usr/lib/arm-poky-eabi/4.9.3/fpu/crtn.o /usr/lib/arm-poky-eabi/4.9.3/fpu/crtend.o /usr/lib/arm-poky-eabi/4.9.3/fpu/crtbegin.o /usr/lib/arm-poky-eabi/4.9.3/fpu/libgcc.a /usr/lib/arm-poky-eabi/4.9.3/fpu/crti.o Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. [installed-vs-shipped] (From OE-Core rev: 603b2f3ef400ec66a6899a7b407cbfecd3da5910) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-01libgcc: Fix symlink handling in cross-arch multilib casesRichard Purdie
The symlink being generated needs to match both the current arch (e.g. mips or mips64) but also use the underlying TARGET_SYS without multilib extensions to TARGET_VENDOR or extensions to TARGET_OS. The way multilib changes TARGET_VENDOR meant this code did not have a way of removing that change. The method of removing some TARGET_OS suffixes was also not working. By using immediate expansion to run this code, we can run before the multilib code changes it and get the original values. We then use the *current* TARGET_ARCH value in case this does get changed by the multilib since we need to point at the right compiler (32 bit one for 32 bit code). (From OE-Core rev: 89cd6c244b6bc0a8cb52ec84d378d5b305df030f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-21libgcc: remove libgcov-dev from PACKAGESRobert Yang
There should be only one dev and dbg package. (From OE-Core rev: 1e9ccec936554c69ede04babee9955f25b296588) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-19gcc runtime: specify license on a per package basisJoe Slater
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. (From OE-Core rev: 5db535a91edea439c14e75726acd23e64bb1e2ea) Signed-off-by: Joe Slater <jslater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.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. (From OE-Core rev: d971db8b2259e4c35b871cccf130fba193849560) Signed-off-by: Peter A. Bigot <pab@pabigot.com> 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. (From OE-Core rev: 7c9f4a22d5c14d768be872beb9fc798163d6d204) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-25gcc: Convert to use hardlinkdirRichard Purdie
(From OE-Core rev: 204bc1f39030a3c0dd3eadadabb013aca8bb9cc6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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 (From OE-Core rev: ea297e807f4f84c281e0f8c6c4470ee3f3fa949b) Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com> Signed-off-by: Saul Wold <sgw@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. (From OE-Core rev: 97f2a81d6796ddaf7bbaab86c2ab9039673c732c) Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23libgcc: Move common code to libgcc.incRichard Purdie
(From OE-Core rev: 3b627b0a8e91a08a3e2a44c71d312ae303fb5d62) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>