summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-common.inc
Commit message (Collapse)AuthorAgeFilesLines
* gcc/go: Drop crosssdk suffix from virtual provides to improve dependency ↵Richard Purdie2023-05-021-2/+1
| | | | | | | | | | | | | | | handling There is little point in having "crosssdk" suffex added to the virtual provider within gcc/go since the TARGET_PREFIX or SDK_PREFIX already encapsulates this. Remove it allowing some of the special case overriding to be removed. This also allows removal of some of the MLPREFIX usage since again, the triplet also covers this. (From OE-Core rev: fe0206ba482d209b24e636d578aa68ba5e67ba1b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: set the default target archDaniel McGregor2022-09-291-0/+10
| | | | | | | | | | | | | | | | The default x86-64 architecture for target gcc (ie, the one in poky build appliances) is native. Since we have a variety of build systems it will occasionally produce instructions that don't work on all of our development system. Instead, set gcc's default architecture to the one specified in TUNE_CC_ARCH, that guarantees that gcc-runtime and any binaries produced are compatible with the target machine type. (From OE-Core rev: 52b952e474e655f8b4b6501813d57e20c9f02ba2) Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-source: Fix incorrect task dependencies from ${B}Richard Purdie2022-06-151-1/+1
| | | | | | | | | | | | | | | | Some tasks may reference ${B} for gcc-source which in general would not exist. It has dependencies on HOST_SYS and TARGET_SYS which are not appropriate for a shared recipe like gcc-source. This causes problems for the archiver and multiconfigs in particlar. Set B to something else to avoid these task hash issues. Acked-by: Jose Quaresma <jose.quaresma@foundries.io> (From OE-Core rev: beb2a76c591e985c6fc7ed473abd1bee27f955a2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common.inc: Remove mirrors that are no longer availablePeter Kjellerstedt2021-11-111-5/+1
| | | | | | | | | Also switch to https for https://gcc.gnu.org/pub/gcc/releases/ (From OE-Core rev: 45670d96119c3a483e9571821b6d5e984c2e2f93) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common.inc: Clean up the additions to MIRRORSPeter Kjellerstedt2021-11-111-5/+5
| | | | | | | | | | Since commit 044fb04d in bitbake (fetch2: Allow whitespace only mirror entries) there is no need to separate the entries in MIRRORS with "\n". (From OE-Core rev: 5374c45725ef5796a563c0665cde0fc05cecd856) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert to new override syntaxRichard Purdie2021-08-021-2/+2
| | | | | | | | | | | | 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>
* meta/recipes-devtools: Add HOMEPAGE / DESCRIPTIONDorinda2021-02-261-0/+1
| | | | | | | | | | | Added HOMEPAGE and DESCRIPTION for recipes with missing decriptions or homepage [YOCTO #13471] (From OE-Core rev: bb05814335e7101bfd8df0a11dc18a044e867bed) Signed-off-by: Dorinda Bassey <dorindabassey@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Enable 32bit powerpcle at multi-arch for powerpc64leKhem Raj2020-01-191-0/+1
| | | | | | | | | | Even though we do not expect any legacy ( 32bit ) for LE, linux-yocto does enable the compat code, so enable 32bit support to get that going (From OE-Core rev: 8e24fd8dcadc6dd13171a2c4cfec6bcff8db772a) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common.inc: Process staging fixme with correct target/native sysrootNathan Rossi2019-09-061-1/+1
| | | | | | | | | | | | Correct the 'staging_processfixme' call so that target sysroot and native sysroot paths are corrected when extracting the stashed build directory. This is required for 'make check' to work correctly due paths used in configuration and scripts which point at the native sysroot. (From OE-Core rev: 2c47ffb65ec16af50112f9c388dc85439c069848) Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Fix ldbl-128 support for muslKhem Raj2019-09-031-7/+0
| | | | | | | | | | | | | Let the patch trigger based on target triplet instead of passing via configure, this lets gcc compile for 64bit otherwise it ends up with libgcc build errors error: unable to emulate 'TF' (From OE-Core rev: 2259bf5366a9ff654dfaf15baa5df2d943383ce6) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Drop the -initial versions of the compilerRichard Purdie2018-12-261-4/+3
| | | | | | | | | | Separated out from the previous commit for clarity, this simply drops all the -inital pieces of gcc which are no longer needed after the previous commit. (From OE-Core rev: d84971928b68efddbdb6344b1021d998c9e26adb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Enable secureplt for powerpc64 target tooSerhey Popovych2018-12-151-1/+1
| | | | | | | (From OE-Core rev: 72c3381ef5b18c784707ef361ee02f07770220f6) Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-8: Disable float128 for ppc/muslKhem Raj2018-06-121-1/+1
| | | | | | | (From OE-Core rev: 0685753ed967fb87b0ab4e96fe4d27ebe2e97eb3) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Upgrade 7.2 -> 7.3Richard Purdie2018-01-271-0/+1
| | | | | | | | | | | | | | The static PIE patch was updated by Juro Bystricky <juro.bystricky@intel.com> to work with gcc 7.3. This update from the stable gcc 7 branch includes the retpoline functionality which is useful to assist with recent security issues. Two backported patches were dropped as they're included in 7.3. (From OE-Core rev: a4c1ede6876ad6b84ab2b3bece14bf0afdc9d6b7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common.inc: set CVE_PRODUCT to gccMikko Rapeli2017-07-241-0/+2
| | | | | | | | | | | | All recipes which include this are using gcc as product name in NVD like https://nvd.nist.gov/vuln/detail/CVE-2015-5276 (From OE-Core rev: bd6f1430334412588c143d8029be39fe814672cd) Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Remove further uclibc remnants (inc. patches and site files)Richard Purdie2017-06-221-1/+1
| | | | | | | | | | | | 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>
* bitbake.conf: Add COMPONENTS_DIR for ${STAGING_DIR}-componentsPeter Kjellerstedt2017-05-111-1/+1
| | | | | | | | | | The path to where to install and find the sysroot components is used in many places. This warrants it to get its own variable. (From OE-Core rev: 70a84b525470f72339568409daf84845904e4cab) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Drop now unneeded update_data callsRichard Purdie2017-02-151-1/+0
| | | | | | | | | | Now that the datastore works dynamically we don't need the update_data calls so we can just remove them. They're not actually done anything at all for a while. (From OE-Core rev: 8de0c5d3bd01919e2bf0394f9c485936d6098cec) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Split builddir saving into its own sstate taskRichard Purdie2017-01-261-0/+10
| | | | | | | | | | | | | | | | | | 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>
* meta: remove True option to getVar callsJoshua Lock2016-12-161-16/+16
| | | | | | | | | | | | | getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) (From OE-Core rev: 7c552996597faaee2fbee185b250c0ee30ea3b5f) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* libgcc: Ensure that gcc configure options are passed to libgcc tooKhem Raj2016-05-131-0/+2
| | | | | | | | | | | | libgcc uses certain options from EXTRA_OECONF as well, curently we are ignoring them, as a result we do not configure libgcc to match cross gcc in some cases e.g. ppc/musl should have used 64bit long doubles but it went for 128-ldbls which is default, works on glibc but not on musl (From OE-Core rev: d774bb2d10f2c05900f87dcc53f073433ca02121) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common.inc: String format tweak for available tunesnoel eck2016-04-141-1/+1
| | | | | | | | | | | | | Small change to python string formatting for error logging. Previously, tune and availtunes would print out at the end of the log message. This change allows them to print out in the correct locations of the error string. (From OE-Core rev: 65fb2a4af127d32f31fbe696c80de5bafd953200) Signed-off-by: noel eck <kceleon@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Update default Power GCC settings to use secure-pltMark Hatle2015-11-161-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | The gcc default, bss-plt, will cause errors when using the prelinker. All other distributions that I am aware of are using the the secure-plt. For an explanation of the differences, the gcc docs: Current PowerPC GCC accepts a `-msecure-plt' option that generates code capable of using a newer PLT and GOT layout that has the security advantage of no executable section ever needing to be writable and no writable section ever being executable. PowerPC ld will generate this layout, including stubs to access the PLT, if all input files (including startup and static libraries) were compiled with `-msecure-plt'. `--bss-plt' forces the old BSS PLT (and GOT layout) which can give slightly better performance. The security of the new PLT and ability to run the prelinker outweigh any performance penalty. The secure-plt is enabled by default. The old bss-plt can be enabled by selecting 'bssplt' in the DISTRO_FEATURES. (From OE-Core rev: 70c55aada1101a5c687cdaa79f370fa4530b39d9) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: update i586 TARGET_ARCH tests to also handle i686Andre McCurdy2015-07-081-0/+1
| | | | | | | | (From OE-Core rev: 589bad6e9213136e7f30b4eafb7abfdd10070d1a) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Rework shared workRichard Purdie2014-12-031-50/+1
| | | | | | | | | | | | | | | | | | | | | The current implementation of shared work for gcc is at best confusing. It relies on the fetch/unpack/patch tasks having exactly the same stamps and if this gets broken for some reason, its hard to figure out what the problem is. It also leads to complex code in bitbake. The benefits of shared work for gcc are clear but a better approach is needed. This patch adjusts things so that a single new recipe (gcc-source) provides the fetch/unpack/patch/preconfigure tasks, the rest of gcc simply depends on these tasks and have no fetch/unpack/patch tasks of their own. This means we should get the significant benefits (disk usage/performance) of the single source tree but in a way which has less potential for problems and is easier for people to understand. The cost is an extra recipe/some inc files which is probably a good tradeoff. (From OE-Core rev: ceaa0a448dc5ebddb4f7fb94fb8a503a1c0248c3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Fix intermittent failures during configureMark Hatle2014-11-091-0/+2
| | | | | | | | | | | | | If configure or any of the components it uses from the shared work directory change, do_configure may fail. An existing do_preconfigure was created to handle these conditions, but a 'sed' operation was missed, and a call to gnu-configize was also missed. (From OE-Core rev: 21c2cfff14442cf224e3568bdbb9bcd4070be247) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-configure/gcc-common: Move preconfigure definition to common includeRichard Purdie2014-09-161-0/+10
| | | | | | | | | | | | | | | | | | | | | There is a race where: NOTE: recipe libgcc-initial-4.9.1-r0: task do_configure: Started NOTE: recipe gcc-runtime-4.9.1-r0: task do_preconfigure: Started | checking build system type... /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb/build/build/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/libgcc/../config.sub: line 1711: syntax error near unexpected token `;;' | /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb/build/build/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/libgcc/../config.sub: line 1711: ` ;;' | configure: error: /bin/bash /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb/build/build/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/libgcc/../config.sub x86_64-linux failed | WARNING: exit code 2 from a shell command. so we need to make sure the preconfigure task executes in all shared work contexts. (From OE-Core rev: 3c30331d6eaf804b83a6d27189a12efc94310e91) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes: Remove references to eglibcKhem Raj2014-09-011-1/+1
| | | | | | | | | change use of eglibc related variabled to glibc equivalents (From OE-Core rev: fd15d6e0c8da75951a91d4467eda23c229b1026d) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Abstract long double configuration into python functionKhem Raj2014-08-151-0/+5
| | | | | | | | | | | 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. (From OE-Core rev: e7011429e40ae96b9c9f1e7f3c6f4c1f1102607f) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk: change EXTRA_OECONF_FPU to EXTRA_OECONF_GCC_FLOATPeter A. Bigot2014-08-151-2/+2
| | | | | | | | | | | | 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. (From OE-Core rev: c17d883fa99b6967d83c3796d22fc0c1dbe704e6) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common: Ensure checksums don't change to match old behaviourRichard Purdie2014-05-031-1/+1
| | | | | | | | | | | | | | | 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. (From OE-Core rev: cbc41a573dd3a073e7b862ca9d763ce815e8f927) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Add texinfo.bbclass; recipes that use texinfo utils at build-time inherit it.Max Eliaser2014-05-021-1/+1
| | | | | | | | | | | | | 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. (From OE-Core rev: e6fb2f9afe2ba6b676c46d1eb297ca9cc532d405) Signed-off-by: Max Eliaser <max.eliaser@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common: Only apply fpu settings to target gccRichard Purdie2014-05-021-1/+1
| | | | | | | | | | | | | 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. (From OE-Core rev: ce1f3fd20d81545d6d5dfc68f86f9fddf8ac9bbf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common/gcc-configure-common: Move gnu-configize to its own shared taskRichard Purdie2014-04-301-0/+3
| | | | | | | | | | | | | 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. (From OE-Core rev: 55ed9ffbab5118140baac5d0d29dcc919e1f1668) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* binutils/gcc/gdb: Add TARGET_ARCH to PN for all cross recipesRichard Purdie2014-04-301-0/+2
| | | | | | | | | This allows them to co-exist together in the native sysroot, with one set of cross tools per target architecture. (From OE-Core rev: a2c5509520d5c3e082f55844e6545d0309565f8f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Globally replace oe.utils.contains to bb.utils.containsOtavio Salvador2014-04-251-2/+2
| | | | | | | | | | | 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. (From OE-Core rev: 93499ebc46547f5bf6dcecd5a786ead9f726de28) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Replace one-line DESCRIPTION with SUMMARYPaul Eggleton2014-01-021-1/+1
| | | | | | | | | | | | | | 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. (From OE-Core rev: b8feee3cf21f70ba4ec3b822d2f596d4fc02a292) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Convert to use ':' as a filename sperator and use SSTATE_SWSPEC globallyRichard Purdie2013-12-201-1/+1
| | | | | | | | | | | | | | | | | | | 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. (From OE-Core rev: 6f823a23c5f1d0ffa0a27db1c1bc1907de788505) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate/gcc: Fix shared workdir handling for siginfo filesRichard Purdie2013-12-181-0/+1
| | | | | | | | | | | | | | | | | | | | | 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. (From OE-Core rev: 068e4289b597699cbff2dfde44ba833af4535281) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/recipes: More optimal DISTRO_FEATURES referencesRichard Purdie2013-12-051-2/+2
| | | | | | | | | Using the contains function results in more optimal sstate checksums resulting in better cache reuse as we as more consistent code. (From OE-Core rev: 9c93526756e7cbbff027c88eb972f877bcb1f057) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* base/gcc-common: Ensure umask setting is consistent for shared workdirRichard Purdie2013-11-291-0/+1
| | | | | | | | | | | | | 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. (From OE-Core rev: 67162438ee9c402b23c32853af9d313949eb6e4a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common: Enable building multiarch mips gccLei Liu2013-11-121-0/+1
| | | | | | | | | | | | | | 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. (From OE-Core rev: c210393b3e0c54606493e311d7c2040efebc4dcd) Signed-off-by: Lei Liu <lei.liu2@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common: Improve fpu code checksum dependenciesRichard Purdie2013-10-041-0/+2
| | | | | | | | | | 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. (From OE-Core rev: 83055511dab1e2aeefe84262ebe52595848c844b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake.conf/package: Collapse PKGDATA_DIR into a single machine specific ↵Richard Purdie2013-09-141-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. (From OE-Core rev: 1b8e4abd2d9c0901d38d89d0f944fe1ffd019379) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common: Exclude AVAILTUNES from sstate checksumsRichard Purdie2013-03-181-0/+2
| | | | | | | | | | | | | AVAILTUNES is only used as a sanity check, we don't need to include it in the sstate checksum in this case. If included it can cause problems when switching machines with a common package architecture. [YOCTO #3667] (From OE-Core rev: b1cc5a4055c6402595eac1a93eac4c946210d130) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common.inc: handle case where tune is not definedMatthew McClintock2013-03-051-1/+1
| | | | | | | (From OE-Core rev: d3eab8b17f8e50f99042a7a8f43db94640c53d41) Signed-off-by: Matthew McClintock <msm@freescale.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: enable multilib for target gccConstantin Musca2013-02-011-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - add a task to setup multilib configuration for target gcc - this commit adapts Nitin Kamble's work to gcc 4.7 - use a hash for storing arch-dependent multilib options - patch gcc in order to use the multilib config files from the build directory Tests: root@qemux86-64:~# gcc -m64 t.c -o t root@qemux86-64:~# file t t: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped root@qemux86-64:~# ./t Hello World ! root@qemux86-64:~# gcc -m32 t.c -o t root@qemux86-64:~# file t t: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped root@qemux86-64:~# ./t Hello World ! [YOCTO #1369] (From OE-Core rev: b26819c85881e82ee1b5c68840011e78c321f18e) Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Use FILESPATH instead of FILESDIR and cleanup/simplifyRichard Purdie2012-11-211-2/+0
| | | | | | (From OE-Core rev: 4cb359182da00e661fda11a8b31e3611b0df03cb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "gcc: Use FILESPATH instead of FILESDIR and cleanup/simplify"Richard Purdie2012-11-201-1/+1
| | | | | | This reverts commit 90616875b432a932415063b08497266e70c49d75. It was never meant to be applied as its an incorrect previous development verison of a patch in progress.
* gcc: Use FILESPATH instead of FILESDIR and cleanup/simplifyRichard Purdie2012-11-191-1/+1
| | | | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>