summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
AgeCommit message (Collapse)Author
2019-08-14gcc-cross-canadian: Drop obsolete shlibs exclusionRichard Purdie
This is a very old change as and be inferred from the name in the comment. We've since had many changes to pkgdata including separating it to its own sysroot now so the reasons for this blanket exclusion are likely long gone. If the shlib provides were really the problem I'd much rather have a dedicated variable for that too. Removing this fixes missing dependencies on nativesdk-libc and other libs which would then happen automatically. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-04-12gcc-cross-canadian: Make baremetal specific code genericKhem Raj
baremetal override is not valid for cross-canadian anymore therefore use the TARGET_OS overrides Fixes e.g. https://github.com/riscv/meta-riscv/issues/117 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-26recipes: Drop virtual/libc-for-gccRichard Purdie
We no longer have special "libc" for gcc so we can rely on plain virtual/libc and reduce the complexity in the dependencies. 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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-09gcc: Remove unnecessary --with-mpfr and --with-mpc when cross compilingMike Crowe
Passing --with-mpfr and --with-mpc when compiling the cross compiler appears to be at best unnecessary, and at worst can cause build failures. Firstly, the paths passed in gcc-cross-canadian are using the undefined ${layout_exec_prefix}. This results in configure passing -I${STAGING_DIR_HOST}/include twice to the compiler when it's doing its test builds. This is mostly pointless since that directory doesn't exist with the default oe-core configuration - the correct path would be -I${STAGING_DIR_HOST}/usr/include. The path for mpfr passed in gcc-cross is correct, but unnecessary since it is just the sysroot default. I've gone back through the history, and it seems that these lines (or similar ones) were originally added way back in 8800d8be25295dd7c7d84dde62c3be4df8e43346 for GCC 4.1.1 in 2006! I asked[1] if anyone knew why this was necessary but received no response, so I can only assume that no-one knows. I've successfully built for various targets with this patch applied and observed no problems. [1] http://lists.openembedded.org/pipermail/openembedded-core/2018-September/155971.html Signed-off-by: Mike Crowe <mac@mcrowe.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-11gcc: Add missing flex-native dependencyRichard Purdie
This is needed for all stages of the cross/target/canadian compilers and without it (and with indirect gcc dependencies disabled), the steps fail. Add missing dependencies. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14gcc: Add recipes for gcc-7Khem Raj
Switch default compiler to gcc 7 Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-06-14gcc-cross-canadian: Use ${target_includedir} for compatibility with meta-microMike Crowe
meta-micro puts headers in /include rather than /usr/include in the sysroot. ${target_includedir} means that the correct path will be used automatically. Signed-off-by: Mike Crowe <mac@mcrowe.com> Acked-by: Phil Blundell <pb@pbcl.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-25gcc-cross-canadian: Add missing DEPENDS on virtual/${HOST_PREFIX}gcc-crosssdkRichard Purdie
The cross-canadian compiler needs the nativesdk compiler to build but for some reason this was missing. Add the missing dependency. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-12-16meta: Drop now pointless manual -dbg packagingRichard Purdie
With the autodebug package generation logic, specifically setting FILES_${PN}-dbg isn't needed in most cases, we can remove them. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-30gcc-cross-canadian.inc: overrides for libc-baremetalJuro Bystricky
Modify configure arguments (EXTRA_OECONF) to support build for TCLIBC="baremetal" (From OE-Core rev: 87e81e469fd941fa1b41ded3e02644695cafd2dc) 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-07-31gcc-cross-canadian: Add symlink to real-ld alongside other symlinksRichard Purdie
In some cases such as cross architecture configurations (using mips-X-linux on mips64-X-linux), gcc can get confused about finding a 'real' version of ld. Adding a symlink to 'real-ld' allowed these configurations to work properly. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-03-20gcc-cross-canadian: Enable stripping and packaging of binariesRichard Purdie
This seems to have been disabled since the dawn of time for no good reason. Enable the .debug stripping and packaging allowing for a smaller SDK. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-11-09gcc: Fix intermittent failures during configureMark Hatle
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. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-10-24gcc: poison default sysroot pathRichard Purdie
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-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: 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: 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-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-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-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-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-01-02Replace one-line DESCRIPTION with SUMMARYPaul Eggleton
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-02gcc-cross-canadian: Fix fortran buildRichard Purdie
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-10-30cross-canadian: Handle powerpc linux verses linux-gnuspeRichard Purdie
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-04cross-canadian: Fix TUNE_PKGARCH referencesRichard Purdie
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-08-22gcc-cross-canadian: Fold configure-sdk and package-sdk into the main .incRichard Purdie
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-cross-canadian: Merge 4.7 and 4.8 recipes into common includeRichard Purdie
This removes duplication and follows the pattern of the other gcc recipes. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11gcc-cross-canadian: enable multilib supportConstantin Musca
Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-19gcc-cross-canadian.inc: Add dependency on cross-gccKhem Raj
gcc-cross-canadian uses cross compiler during libgcc build when building from sstate the build failed when building gcc-cross-canadian since it did not populate gcc-cross therefore add an explicit dependency on virtual/${TARGET_PREFIX}gcc to make sure that gcc-cross is available before building gcc-cross-canadian Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-10-10gcc-cross-canadian: Fix gettext dependencyRichard Purdie
There was a problem in commit ad23395cd1f6c0cbfcc6980b6071d589f9f6cde0 since gettext-nativesdk was translated to gettext instead of nativesdk-gettext. This fixes to use the correct dependency. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-31nativesdk: Switch to using nativesdk as a prefix, not a suffixRichard Purdie
As discussed on the mailing lists, using a suffix to package names is hard and has lead to many recipes having to do PKGSUFFIX games. Its looking extremely hard to scale nativesdk much further without hacking many recipes. By comparison, using a prefix like multilib does works much better and doesn't involve "hacking" as many recipes. This change converts nativesdk to use a prefix using the existing multilib infrastructure. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2010-12-10Using TRANSLATED_TARGET_ARCH instead of TARGET_ARCH.Lianhao Lu
Using TRANSLATED_TARGET_ARCH instead of TARGET_ARCH for cross-canadian packages. This is due to the TARGET_ARCH of x86_64 would results incorrect packaging in cross-canadian packages. The pacakge name appendix of x86_64 target in cross-canadian packages is x86-64. Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
2010-12-10cross-canadian: pkg name includes target archLianhao Lu
This commit fixes Bug #528. 1. Added the target arch name to the pkg name of gcc-cross-canadian, gdb-cross-candian and bintuils-cross-candian. 2. Move the cross-canadian pkgs out of task-sdk-host into a new task task-cross-canadian. 3. Added the RDEPENDS of task-cross-canadian into meta-toolchain. Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
2010-08-27Major layout change to the packages directoryRichard Purdie
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>