summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc
Commit message (Collapse)AuthorAgeFilesLines
* gcc-configure-common.inc: drop --enable-target-optspace from configureAndre McCurdy2016-02-022-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | Configuring gcc with --enable-target-optspace (which causes gcc to append "-g -Os" to the default CFLAGS_FOR_TARGET and so force libgcc etc target libraries to always be optimised for size) dates back to the very first commit in oe-core git in 2005 (for gcc 3.4.3). Configuring gcc with --enable-target-optspace is not done widely elsewhere (it's not used for Ubuntu or Fedora host gcc, the Linaro binary toolchain or in Buildroot since early 2015). Sometime around gcc 4.5.x it caused problems for powerpc and so was disabled for that architecture: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810 This patch removes --enable-target-optspace completely (ie powerpc is no longer a special case) and allows optimisation of libgcc etc to be controlled directly by the flags present in TARGET_CFLAGS. (From OE-Core rev: 686b266506a1a56fb68ab0f00d658787dd7fe4ce) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* machine/include: drop tune-cortexm*.inc and tune-cortexr4.incAndre McCurdy2016-02-021-2/+0
| | | | | | | | | | | | | | The Cortex M1, M3 and R4 CPU tuning files are poorly tested (if at all). They have no obvious users either inside or outside oe-core. Until OE officially gains support for CPUs without an MMU, these tuning files are probably better maintained outside of oe-core (e.g. in a separate meta-nommu layer). (From OE-Core rev: 7a1445c55de904115b950c8e50432a9f11f02208) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc, qemuppc: Explicitly disable forcing SPE flagsKhem Raj2016-01-311-8/+16
| | | | | | | | | | | | | | | | | | | | | G4 does not have SPE, so we make that explicit in the tune files and since we emulate G4 when building Qemu, we ensure it for qemuppc as well. GCC config for powerpc-linux is made to include SPE by default which is equivalent if the tripet was powerpc-linux*spe, this forces gcc to configure assembler to enable -mspe by default, when we do that then the kernel fails to compile with binutils 2.26, since newer assembler is smart to detect the tlbia instructions are not compatible with SPE and hence the kernel build breaks rightly. We configure the kernel for G4 as well where it enables tlbia instrucitons rightly so because it thinks its being configured for power4. So we keep the options but do not force -mspe down to assembler as default. (From OE-Core rev: 7a51776a830167e43cbd185505f62f328704e271) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-cross.inc: drop pruning of PATCH_GET from the testgcc scriptAndre McCurdy2016-01-301-1/+0
| | | | | | | | | | | PATCH_GET is no longer exported by bitbake.conf, so no longer needs to be pruned from the gcc-cross do_compile() environment. (From OE-Core rev: 386d1617f1e6e293506b751faa41ff8c37348973) 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: fix hidden weak symbols by removing buggy gcc patchMathieu Desnoyers2016-01-302-63/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are noticing the presence of the following patch in various openembedded gcc versions: 0024-PR-target-32219.patch However, contrarily to its "Backport" status, that patch is not upstream in gcc, and it breaks handling of start/stop automatic weak hidden symbols we use in lttng-ust. We are only experiencing problems on the various openembedded compilers, but on no other distro (with same compiler versions), which led us to suspect a buggy distro-specific gcc patch. We've been testing with openembedded gcc-4.9.2-r0. Rebuilding the gcc compiler with this patch removed fixes the lttng-ust issue. Link: http://lists.openembedded.org/pipermail/openembedded-core/2016-January/116306.html Link: http://lists.lttng.org/pipermail/lttng-dev/2014-May/023112.html Link: https://gcc.gnu.org/ml/gcc-help/2014-05/msg00042.html Link: http://cgit.openembedded.org/openembedded-core/commit/?id=3cb2b003db7371b3a47d02c08352a262e1e419b4 Link: https://sourceware.org/bugzilla/show_bug.cgi?id=15435 (From OE-Core rev: 3e98ba4d6c1d1e4919ce373ec031d41c2538f10b) Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-cross-canadian: Add missing DEPENDS on virtual/${HOST_PREFIX}gcc-crosssdkRichard Purdie2016-01-261-1/+1
| | | | | | | | | The cross-canadian compiler needs the nativesdk compiler to build but for some reason this was missing. Add the missing dependency. (From OE-Core rev: 77fcdfdc83f01f1ff0ae310ebb7bffbdb4330156) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-runtime.inc: provide libquadmathIoan-Adrian Ratiu2016-01-201-1/+3
| | | | | | | | | | | libgfortran's build fails with "ld: cannot find -lquadmath" unless libquadmath is added to gcc-runtime's RUNTIMETARGET (From OE-Core rev: 80333155db8fa53fb52898c4312daa656de89c3b) Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-runtime: switch to removal override syntax to modify CXXFLAGSJoshua Lock2016-01-191-1/+1
| | | | | | | | | | | | 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. (From OE-Core rev: 19995268da27af93af6f718fab0434178a1079ce) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-configure-common.inc: duplicate armv7a over-ride for armv7veAndre McCurdy2016-01-151-0/+1
| | | | | | | | (From OE-Core rev: 02c3ac6f066ccd1cbb6e457080bf10db5d6abfe0) 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>
* gcc5: Fix build on NIOS2Marek Vasut2016-01-112-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The gcc 5.3 does not build on NIOS2 due to a missing MUSL_DYNAMIC_LINKER definition in it's config file. Add the definition to fix the build issue. The output produced during the failing build is as follows: g++ -isystem/b/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc -L/b/tmp/sysroots/x86_64-linux/usr/lib -L/b/tmp/sysroots/x86_64-linux/lib -Wl,-rpath-link,/b/tmp/sysroots/x86_64-linux/usr/lib -Wl,-rpath-link,/b/tmp/sysroots/x86_64-linux/lib -Wl,-rpath,/b/tmp/sysroots/x86_64-linux/usr/lib -Wl,-rpath,/b/tmp/sysroots/x86_64-linux/lib -Wl,-O1 gcc-ar.o -o gcc-ar \ file-find.o libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a In file included from ./tm.h:27:0, from /b/tmp/work-shared/gcc-5.3.0-r0/gcc-5.3.0/gcc/gcc.c:34: ./config/linux.h:92:28: error: expected ',' or ';' before 'MUSL_DYNAMIC_LINKER' BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER) ^ ./config/linux.h:59:60: note: in definition of macro 'CHOOSE_DYNAMIC_LINKER1' "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:%{" LIBC4 ":" LD4 ";:" LD1 "}}}" ^ ./config/linux.h:91:3: note: in expansion of macro 'CHOOSE_DYNAMIC_LINKER' CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ ^ ./config/nios2/linux.h:40:25: note: in expansion of macro 'GNU_USER_DYNAMIC_LINKER' -dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \ ^ /b/tmp/work-shared/gcc-5.3.0-r0/gcc-5.3.0/gcc/gcc.c:884:32: note: in expansion of macro 'LINK_SPEC' static const char *link_spec = LINK_SPEC; ^ <command-line>:0:27: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] /b/tmp/work-shared/gcc-5.3.0-r0/gcc-5.3.0/gcc/gcc.c:1295:48: note: in expansion of macro 'STANDARD_STARTFILE_PREFIX' static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; (From OE-Core rev: c8ec931b07c08e27027b38313e6776875db12acb) Signed-off-by: Marek Vasut <marex@denx.de> Cc: Khem Raj <raj.khem@gmail.com> Cc: Ross Burton <ross.burton@intel.com> Cc: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-sanitizers: link directly against sysroot libstc++Ross Burton2016-01-071-7/+2
| | | | | | | | | | | | | | Instead of building a shadow libstdc++-v3 directory with symlinks to the sysroot libstdc++-v3.la, fiddle the Makefiles so that it doesn't attempt to link to a in-tree library at all. This fixes builds where .la files are not being installed into the sysroot at all. (From OE-Core rev: f0f814a674faef2160fb8a041b63169c74da108e) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-configure-common.inc: add gcc-runtime ABI fixes for armv7m and armv7rAndre McCurdy2015-12-221-0/+2
| | | | | | | | (From OE-Core rev: 55beb07da9120a2444fcc53bbe1b8f418dafb5aa) 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>
* gcc5: Upgrade gcc-5.2 -> gcc-5.3Khem Raj2015-12-2263-592/+502
| | | | | | | | | | | | 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 (From OE-Core rev: 8b664a7d6bba89a8221d7fd1a52915fef0002d71) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: more removals of redunant FILES_${PN}-dbgRoss Burton2015-12-162-8/+1
| | | | | | | | | | 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>
* meta: Drop now pointless manual -dbg packagingRichard Purdie2015-12-162-9/+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>
* nopackages: Add class for recipes which don't generate packagesRichard Purdie2015-12-143-6/+4
| | | | | | | | | | | | | | | | It turns out writing the same list of packaging tasks multiple times in multiple places is error prone. Move this to a new class 'nopackages", migrate existing users and add glibc-initial and libgcc-initial since we don't want packages for those recipes. This means the sstate for those recipes won't be installed, saving small amounts of build time and bandwidth. A reference to the old package_write task is also dropped. (From OE-Core rev: cece583d58f82a50c3a4eac876eb326ac3b8f5e5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Add support for building musl configurationKhem Raj2015-12-1210-0/+1052
| | | | | | | | | | | Most of these patches are already in gcc 6.0/master but we still need them for older gcc, they have been tested in meta-musl for quite some time (From OE-Core rev: 30a0cc2ef72399b84da4903e697f258f79852fc9) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.9: import patch fixing compilation in thumb modeDmitry Eremin-Solenikov2015-12-122-0/+40
| | | | | | | | | | | Import patch fixing a bug that caused ICE when compiling some packages (e.g. ICU) in Thumb-1 model. (From OE-Core rev: 68062674b853af750d0fdafb06090ed2f75fa0a4) Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-5.2: import patch fixing compilation in thumb modeDmitry Eremin-Solenikov2015-12-122-0/+40
| | | | | | | | | | | Import patch fixing a bug that caused ICE when compiling some packages (e.g. ICU) in Thumb-1 model. (From OE-Core rev: 3c8ad9e008a1786ff95202f413e267756a5e783f) Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-cross-initial: make dependency on gnu-config-native and autoconf-native ↵Yuanjie Huang2015-12-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | explicit When a project is configure to use sstate cache and has the host tool sysroot cleaned, gcc-cross-initial may fail to be configured due to lack of gnu-configize tool. gcc-cross-initial recipe has autotools dependency inhibited, and the same flag variable also excludes the gnu-config-native. Though there is an indirect dependency through libmpc-native, it's not safe with sstate cache being used. Moreover, gnu-config-native requires a perl package from autoconf-native to run, otherwise it will fail with "Can't locate Autom4te/ChannelDefs.pm in @INC" message. This patch makes both dependencies explicit for gcc-cross-initial's configuration. (From OE-Core rev: 18a913e54b40a1654d0967290088be5e7fcdd6f6) Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_regex.inc: split entries which blacklist specific versions to their ↵Alexander Kanavin2015-12-081-0/+2
| | | | | | | | | | recipes (From OE-Core rev: 1eb9e190ef3bb1170b3eaabd9f7900e7ce176624) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* guile, mailx, gcc, opensp, gstreamer1.0-libav, libunwind: disable thumb ↵Martin Jansa2015-12-011-3/+2
| | | | | | | | | | where it fails for qemuarm (From OE-Core rev: 981626d8cee345d27b7c9d96e941fd6622f47792) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.9: Fix various _FOR_BUILD and related variablesJuro Bystricky2015-11-252-0/+124
| | | | | | | | | | | | | | | | | | | This patch is based on the patch for gcc-5.2 (41cbfd7af60f93a4bd496b7b6bf477215a286950) When doing a FOR_BUILD thing, you have to override CFLAGS with CFLAGS_FOR_BUILD. And if you use C++, you also have to override CXXFLAGS with CXXFLAGS_FOR_BUILD. Without this, when building for mingw, you end up trying to use the mingw headers for a host build. The same goes for other variables as well, such as CPPFLAGS, CPP, and GMPINC. (From OE-Core rev: e6dc4b2ac0cc6417c0e0ddcdcbe3f334581af8fc) 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>
* gcc-multilib-config: make aarch64 support multilibRobert Yang2015-11-251-0/+7
| | | | | | | | | | | | | | | | | | | | | Fixed: MACHINE = qemuarm64 require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon" $ bitbake core-image-minimal -cpopulate_sdk WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64 WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64 [YOCTO #8638] (From OE-Core rev: 9e0cad83eefae4c1a5e5e0334cc1cfdfc1f51057) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Drop 4.8Richard Purdie2015-11-1659-6628/+0
| | | | | | | | | We have 5.2 and 4.9, we don't really need 4.8 now and it can be moved out to other layers if anyone still wants/needs it. (From OE-Core rev: 6f98c39418c60b7c0b25b30983d2e5257158a6a4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Update default Power GCC settings to use secure-pltMark Hatle2015-11-163-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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-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-5.2: Fix various _FOR_BUILD and related variablesMark Hatle2015-10-212-0/+124
| | | | | | | | | | | | | | | | | | When doing a FOR_BUILD thing, you have to override CFLAGS with CFLAGS_FOR_BUILD. And if you use C++, you also have to override CXXFLAGS with CXXFLAGS_FOR_BUILD. Without this, when building for mingw, you end up trying to use the mingw headers for a host build. The same goes for other variables as well, such as CPPFLAGS, CPP, and GMPINC. (From OE-Core rev: 85ca40c42950315f2783b98f57df16b261d2826e) Signed-off-by: Peter Seebach <peter.seebach@windriver.com> 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-4.x: fix wrong warning when using the universal zero initializer {0}Kai Kang2015-10-194-0/+216
| | | | | | | | | | | | | | | | | | | | | When I upgrade efivar to 0.21, it fails to compile with error messages: | linux.c:850:9: error: missing braces around initializer [-Werror=missing-braces] | struct ifreq ifr = { 0, }; | ^ It is a known issue of gcc. Backport patch from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119 to fix wrong warning when using the universal zero initializer {0}. (From OE-Core rev: ef16c20e6936218ff96c599cce0200c34f5017dd) Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-multilib-config: Ensure SDK_ARCH doesn't change target sigsRichard Purdie2015-10-011-0/+1
| | | | | | | | | | | Changing SDKMACHINE (which changes SDK_ARCH) shouldn't cause target task signatures to change. Exclude the dependency on SDK_ARCH for this reason. It only affects nativesdk builds and those already account for SDK_ARCH in the build WORKDIR paths. (From OE-Core rev: dae7c45fac1d877203f173842d43abc4883b808b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-multilib-config: Expand ccargs variableYuanjie Huang2015-09-281-1/+1
| | | | | | | | | | | | | | | | | | The ccargs obtained from get_tune_parameters may not be fully expanded, so that the gcc_multilib_setup function can be confused, and generates invalid MULTILIB_OPTIONS in GCC Makefile fragment, which will break the multilib feature of target gcc. To address problems above, this patch modifies gcc_multilib_setup function to expand ccargs before use. Upstream-Status: Inappropriate [configuration] (From OE-Core rev: 02eddf9a0b89b0cbe0c83d95cedb3431899197d0) Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-runtime: Add multilib C++ header mappingRichard Purdie2015-09-281-0/+3
| | | | | | | | | | | 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. (From OE-Core rev: 823ce9555ee78aa460d0560b8fd9b309cfd36997) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-shared-source: Set empty SRC_URIRichard Purdie2015-09-241-0/+2
| | | | | | | | | | | | | gcc-source is the only gcc recipe meant to handle the fetch/unpack/patch tasks, the other gcc recipes then depend on this. This approach has been creating some confusion for tools like the archiver. The simplest way to signal to these processes that there is no source is to empty SRC_URI at the same time we disable the other tasks. (From OE-Core rev: 0df9d45e0be59e55e585e6d25dedbf0fc55c490c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* libgcc.inc: package baremetal multilib librariesJuro Bystricky2015-09-241-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* gcc-5.2: disable islRichard Tollerton2015-09-241-0/+2
| | | | | | | | | | | | | | | We presently don't package isl. Unfortunately, if the host is already using gcc-5.2 (as is presently the case on Arch Linux), configure will autodetect the host's libisl, and do_compile will break because the system isl headers aren't pulled in. In lieu of packaging isl, disable it for now. [YOCTO #8376] (From OE-Core rev: 555e8d110435cf4af1e1ab4699c2fa55898e9d80) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: reformat 0063-nativesdk-gcc-support.patchRoy Li2015-09-121-25/+19
| | | | | | | | | | 0063-nativesdk-gcc-support.patch can not be applied to source code due to the buggy patch command on sled11, so reformat it, nothing is changed. (From OE-Core rev: 2c8c3d9c4b65d2a5c7976d530138ebcaac2b1447) Signed-off-by: Roy Li <rongqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Fix Upstream-Status statementsRoss Burton2015-09-123-3/+3
| | | | | | | | | | Fix a variety of problems such as typos, bad punctuations, or incorrect Upstream-Status values. (From OE-Core rev: bd220fe6ce8c3a0805f13a14706d3130ea872604) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-5.2: remake 0040-nativesdk-gcc-support.patchRobert Yang2015-09-121-75/+67
| | | | | | | | | | It couldn't be applied by sled11's patch, now fix it. (From OE-Core rev: e01b450a419aba2164a86510ca1ae402ec86aff0) Signed-off-by: Robert Yang <liezhi.yang@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>
* libgcc-common.inc: overrides for libc-baremetalJuro Bystricky2015-08-301-0/+6
| | | | | | | | | | | | Added TCLIBC="baremetal" specific overrides. (From OE-Core rev: 044f989b34e46f919e6b28860d7a1b396b2c3808) (From OE-Core rev: 53153b9fd1ba56ca3df19d895d365054a5ecd50f) 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>
* gcc-cross.inc: overrides for libc-baremetalJuro Bystricky2015-08-301-0/+4
| | | | | | | | | | | | Modifications to to support build for TCLIBC="baremetal" (From OE-Core rev: 9e7da158e0e7628c22013fbee34270f7d2db621f) (From OE-Core rev: 92eb54c6b7424770f96a8e14e792cbe5124968c3) 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>
* gcc-cross-canadian.inc: overrides for libc-baremetalJuro Bystricky2015-08-301-0/+4
| | | | | | | | | | | | | Modify configure arguments (EXTRA_OECONF) to support build for TCLIBC="baremetal" (From OE-Core rev: 87e81e469fd941fa1b41ded3e02644695cafd2dc) (From OE-Core rev: 1a79426dabf9237fa2cdd5908ff370bf1d9fa2df) 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>
* gcc-source: exlude from worldRandy MacLeod2015-08-293-0/+6
| | | | | | | | | | | | Exclude all versions of gcc-source from world builds so that: bitbake -c <stage> world will work. gcc-source deletes most bitbake build stages since it is a source-only package. (From OE-Core rev: 0eda7b4d889b926ab97d60fcbb1c0d12d730f8ea) Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-multilib-config: Adapt mips for mips64 and different gcc versionsRichard Purdie2015-08-011-3/+7
| | | | | | | | | The location of some files for mips varies between gcc 4.9 and 5.2. Ensure that we cover both cases (and allow specified files to be optional). (From OE-Core rev: 5c33b0a752e6168200776da61dee7d4d807ddbb0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cross-canadian/gcc: Various mips64 fixesRichard Purdie2015-08-011-0/+2
| | | | | | | | | "n32" is a mips64 variant we need to consider when processing the TARGET_OS extensions. Also add the multilib extensions for mips64. (From OE-Core rev: fe26f809aaad5d5d608e841c99b817316c5a59a0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* libgcc: Fix symlink handling in cross-arch multilib casesRichard Purdie2015-08-012-14/+14
| | | | | | | | | | | | | | | | | | | | | 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>
* gcc-multilib-config: Tweak naming of options to match gcc's expectationsRichard Purdie2015-08-011-1/+2
| | | | | | | | | gcc itself does not add the '-' of options to its multilib configuration. We should follow its example. (From OE-Core rev: e742eef3e1016a29f744341c17d1b421d318b40f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-cross-canadian: Add symlink to real-ld alongside other symlinksRichard Purdie2015-08-011-0/+2
| | | | | | | | | | | 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. (From OE-Core rev: cdd86896c8d29135f937968e9aa07f919cf543d3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Add patch to handle on target multilibs betterRichard Purdie2015-08-014-0/+178
| | | | | | | | | | | | | | On target multilibs did not work properly since gcc-cross-canadian was only searching a limited number of sysroot directories to find multilib target binaries. This adds an extra search path to ensure those binaries are found and our gcc-cross-canadian works everywhere we need it to, e.g. with mips trilib configurations. (From OE-Core rev: b928d92bb9f76c118846d6c495dc57c149368f0f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Add support for nativesdk-gccRichard Purdie2015-07-318-9/+437
| | | | | | | | | | | | | | | | | | | | | | | | | | Being able to build a nativesdk gcc is useful, particularly in cases where the host compiler may be of an incompatible version (or a 32 bit compiler is needed). Sadly, building nativesdk-gcc is not straight forward. We install nativesdk-gcc into a relocatable location and this means that its library locations can change. "Normal" sysroot support doesn't help in this case since the values of paths like "libdir" change, not just base root directory of the system. In order to handle this we do two things: a) Add %r into spec file markup which can be used for injected paths such as SYSTEMLIBS_DIR (see gcc_multilib_setup()). b) Add other paths which need relocation into a .gccrelocprefix section which the relocation code will notice and adjust automatically. This patch adds tweaks to the relocation script to handle the new section too. (From OE-Core rev: cd3d874fced2ee4c950d9964d30c0588fd8772e7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>