summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-target.inc
Commit message (Collapse)AuthorAgeFilesLines
* gcc-target.inc: Prevent sysroot from leaking into configargs.hNathan Rossi2020-03-161-0/+8
| | | | | | | | | | | | | | | | | | | Prevent the full recipe-sysroot path from leaking into configargs.h. The configargs.h header is intended to be static and unchanged as the content is used as a means of determining that a gcc plugin is built for the same gcc. This also effects the output of 'gcc -v'. Due to per recipe sysroots and staging, the sysroot path would be replaced with the sysroot local to the recipe thus changing the content of configargs.h. This change also improves gcc binary reproducibility. The sysroot path is replaced with the base target root "/". (From OE-Core rev: 0f418fccab3f67a2afaa28195263d6f24831dd56) Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit b8d6e2ab68ee5e341fe970b191bfd334e6d2c40b) Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target: Do not set --with-sysroot and gxx-include-dir pathsKhem Raj2019-05-081-2/+0
| | | | | | | | | | | | | | | | | | | | | | These options are not needed on target infact since the defaults would be good enough for compiler to find the relevant headers and libraries from compiler runtime with gcc9 it starts to strip the sysroot from gxx-include-dir which means it tries to look for gxx headers in localdir ignoring nonexistent directory "usr/include/c++/9.0.1" ignoring nonexistent directory "usr/include/c++/9.0.1/arm-yoe-linux-gnueabi" ignoring nonexistent directory "usr/include/c++/9.0.1/backward" instead of sysroot Removing these options make it behave normal (From OE-Core rev: 2996640fb3577a3c28a22f1e25eae15e8e3d46b1) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Select proper ARC CPU when build for targetAlexey Brodkin2018-11-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default GCC for ARC is configured with ARC700 CPU. This means when we don't pass "-mcpu=xxx": a) Code will be compiled for ARC700 b) Libs will used for ARC700 And if we happen to run on ARCv2 core like ARC HSxx we won't be able to use target gcc w/o "-mcpu=xxx" which is not very convenient as we want to build "target" toolchain but not canadian-cross. Note the trick here is we set TUNE_PKGARCH in just 2 values, it is either "arc700" for all ARCompact cores (ARC750 & ARC770) and "archs" for all ARCv2 cores (ARC HS38 & HS48), see [1]. This gives us usable defaults. For cross-compilation we use TUNE_CCARGS for fine-tuning depending on which HW features we have on the current target so that we may have HW feature A & B or B & C or A & B & C, see [2]. [1] https://github.com/foss-for-synopsys-dwc-arc-processors/meta-synopsys/blob/master/conf/machine/include/tune-arcv2.inc#L4 [2] https://github.com/foss-for-synopsys-dwc-arc-processors/meta-synopsys/blob/master/conf/machine/include/tune-arcv2.inc#L34 (From OE-Core rev: 6d2e44db7ebada41ad1cfc1c98ce9012242ced11) Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-8: Enable fp arch extention when fpu is availableKhem Raj2018-06-211-3/+6
| | | | | | | | | | | | | | This is especially needed when defaulting to hard-float ABI Fixes errors e.g. cc1: error: -mfloat-abi=hard: selected processor lacks an FPU Fixes [YOCTO #12795] (From OE-Core rev: 85981cbbf0ce48a6d82bc39248afa9540ca858d8) Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target.inc: configure gcc for armv7ve targets to default to armv7veAndre McCurdy2018-06-181-5/+6
| | | | | | | | | | | | | | | | | | | | | | Originally these ARM specific EXTRA_OECONF options were applied to both gcc for the target and gcc-cross. That lead to a compromise being made: gcc on the target was configured to default to an ARM architecture which was at least compatible with the target (but not necessarily an exact match) and gcc-cross was configured default to armv7a for both armv7a and armv7ve (to avoid gcc-cross rebuilds when switching between the two). However, when these ARM specific EXTRA_OECONF options were moved from gcc-configure-common.inc into gcc-target.inc (ie they were made to apply only to gcc on the target) the compromise no longer needed to be made. http://git.openembedded.org/openembedded-core/commit/?id=851937dde81de2a9ef54c5f19a78fb12fb82afd4 (From OE-Core rev: 3c368282741e9de1f96988e127b86a6a01b6a26f) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-configure/gcc-target: Move arm6/7 config to target onlyRichard Purdie2017-05-161-0/+8
| | | | | | | | | | We only build one gcc-cross per architecture and having target specific flags means gcc-cross would rebuild. These flags are really for the on target case, so they should be set in gcc-target only. (From OE-Core rev: 851937dde81de2a9ef54c5f19a78fb12fb82afd4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target.inc: create symlinks for gcov and gcov-toolChen Qi2017-03-171-0/+2
| | | | | | | | | | | Create symlinks for gcov and gcov-tool and that they can be used trivially on target. (From OE-Core rev: 5b5a506a6d81095c967304fe4ec38a4bc3dc1edd) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: move cc1 binary file to package cpp.Ismo Puustinen2017-03-171-1/+2
| | | | | | | | | | | | | | | | The file /usr/libexec/gcc/.../cc1 has been installed in package gcc instead of package cpp, because FILES statements for both packages match the cc1 binary. Move the file to package cpp and add cpp to RDEPENDS_gcc to fix the dependency. Having the cc1 binary in cpp fixes errors such as: "cpp: error trying to exec 'cc1': execvp: No such file or directory". (From OE-Core rev: 4bf84edeb6cf4ba82a21bc7ceb1da4f59d839064) Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: add runtime packages to RRECOMMENDSPaul Eggleton2016-07-121-0/+19
| | | | | | | | | | | | | | | | | | | | In order to use certain features of gcc, you need the corresponding runtime library. It seems to me that these ought to be installed by default when installing the compiler since they are required if certain command line options are used, so add them to RRECOMMENDS. I used RRECOMMENDS since some of these packages may or may not exist depending on architecture and build options; additionally it makes it possible to use BAD_RECOMMENDATIONS if you really want to exclude them. The impact of this isn't too bad in the context of an image providing on-target compilation - about a 30MB increase in size for an image containing gcc and g++. (From OE-Core rev: 658d9a764e91f394472c9082a3ed3fa7b9b417d2) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: make sure header path is set correctlyAnuj Mittal2016-06-151-1/+0
| | | | | | | | | | | | | | | | We're setting the native header paths in do_configure_prepend, and don't need to set them again here. This results in gcc-target not being able to locate the headers and not being able to detect glibc version, which in turn results in SSP support not getting detected even though it's available in libc. (From OE-Core rev: 85630aa894278e7818c867179dc19ca2fbd994fc) Signed-off-by: Anuj Mittal <anujx.mittal@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target.inc: Use SYSROOT_DIRS_BLACKLIST to exclude dirs from sysrootPeter Kjellerstedt2016-05-131-3/+1
| | | | | | (From OE-Core rev: 3eb358d97f84e3d909986b7168e7384ae8db4126) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Drop now pointless manual -dbg packagingRichard Purdie2015-12-161-4/+0
| | | | | | | | | With the autodebug package generation logic, specifically setting FILES_${PN}-dbg isn't needed in most cases, we can remove them. (From OE-Core rev: 3ab59d49dd7c18e194b58d1248b4b87709b5a738) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target.inc: Add support for executable thats may have a suffixMark Hatle2015-10-271-6/+6
| | | | | | | | | | | | | In the past GCC has used a wildcard to permit generating executables that may have a suffix, such as .exe. This wild card was lost in one of the updates. Adding the wild card back in fixes a number of issues when generating a mingw gcc. (From OE-Core rev: 1003e93a1b3359a98fb631eeeda3fda184832288) 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-target.inc: Remove non-related gcc headers from include_fixed folderLeonardo Sandoval2015-09-041-0/+31
| | | | | | | | | | | | | Without this patch, the D's include_fixed folder may change after building it (due to the gcc's fixinc.sh script, executed on the do_compile task) and changes depend on the current sysroot headers, making the gcc's builds non-deterministic. [YOCTO #7882] (From OE-Core rev: e0af4b2c8f8e29ac6f8eccef401c7c004355359d) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target 5.1: fix for libcc1Robert Yang2015-07-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed: * gcc 5 introduces a plugin libcc1.so, which is used by gdb, the target gcc didn't build it in the past because gcc_cv_objdump is null, and the error was: gcc-5.2.0/libcc1/configure: line 14531: -T: command not found This only happens for tar gcc as the code shows: if test x$build = x$host; then export_sym_check="objdump${exeext} -T" elif test x$host = x$target; then export_sym_check="$gcc_cv_objdump -T" else export_sym_check= fi * Install libcc1.so and libcc1plugin.so to $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) as lto-plugin did. * Use sed command to fix bad RPATH iussue. [YOCTO #7956] (From OE-Core rev: f6e47aa9b12f9ab61530c40e0343f451699d9077) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-5: fix installed-vs-shippedRobert Yang2015-05-141-2/+6
| | | | | | | | | | gcc-5.1.0: gcc: Files/directories were installed but not shipped in any package: /usr/bin/i586-poky-linux-gcov-tool (From OE-Core rev: 3e2ca755624c13a8249ac66672ebf4d8d7217e62) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target: remove gcc-plugin-dev from PACKAGESRobert Yang2015-04-211-3/+0
| | | | | | | | | There should be only one dev and dbg package. (From OE-Core rev: b38119f4dc69421605355f92954ef39dad93b419) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target: Don't install target gcc libdir filesRichard Purdie2015-02-131-0/+9
| | | | | | | | | | | | | | Installing /usr/lib/gcc/* means we'd have two copies, one from gcc-cross and one from here. These can confuse gcc cross where includes use #include_next and builds track file dependencies (e.g. perl and its makedepends code). For determinism we don't install this to the sysroot, ever and rely on the copy from gcc-cross. [YOCTO #7287] (From OE-Core rev: 15b3324b769dc92e1b0d4b9da9fbfccbc8dde9dd) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sdk: change EXTRA_OECONF_FPU to EXTRA_OECONF_GCC_FLOATPeter A. Bigot2014-08-151-1/+1
| | | | | | | | | | | | 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-target: make --enable-clocale consistent with gcc-runtimePeter A. Bigot2014-08-151-0/+2
| | | | | | | (From OE-Core rev: 9ec30be63ad6d991646a7ce0ee22acdad7a81184) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: recipe whitespace changesPeter A. Bigot2014-08-151-53/+53
| | | | | | | | | | | 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>
* gcc: Ensure c++ includes are in /usr/include/c++/${BINV}Richard Tollerton2014-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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> (From OE-Core rev: 5a2ff3e8f7cd7a47a5ab4e581847ecc4df87fca3) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-common: Only apply fpu settings to target gccRichard Purdie2014-05-021-0/+2
| | | | | | | | | | | | | 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: Drop ARCH_FLAGS_FOR_TARGET usageRichard Purdie2014-04-301-2/+0
| | | | | | | | | | | | | | | | | 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. (From OE-Core rev: 5484596f4252e707ff791feedf143a72dbb613f6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target: Limit compile to host targets, don't build runtimes.Richard Purdie2014-04-301-0/+8
| | | | | | | | | | | | | | 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. (From OE-Core rev: 19448a50c106684ee7e3862f759418c982363a29) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target: remove infodirMartin Jansa2014-04-041-0/+4
| | | | | | | | | | | | * 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. (From OE-Core rev: 0b62f8b012d8a128f34bd85a26aa97ea939cbf64) 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>
* gcc-target: Fix libatomic dependency tracking issuesRichard Purdie2013-09-221-1/+1
| | | | | | | | | | | | | | | The --enable-dependency-tracking option was added to workaround build issues in libatomic. This fixes that build problem properly and removes the flag since the dependency tracking code appears to be full of races which are much deeper and harder to fix. As per the automake manual, dependency tracking is only useful and worth the build performance cost if you are doing more than one compile of the same source code which in most cases we are not so this is a good thing anyway. (From OE-Core rev: a3b665a80abed4c0659925e1cceb1568af023711) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-runtime: Add packaging for libgfortran (and also tweak others)Richard Purdie2013-09-061-0/+1
| | | | | | | | | Add packaging for libgfortran and libquadmath as well as tweak the packaging for libmudflap since it was broken. (From OE-Core rev: 8a726d14a345ef35c6d8d8e369bf3691cee879bf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-target: Combine gcc-target-configure.inc, gcc-target-package.inc and ↵Richard Purdie2013-08-231-0/+153
other common code (From OE-Core rev: 86bbe5b7b8e8f0c6ee88888fa083053ae14765c4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>