summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc
Commit message (Collapse)AuthorAgeFilesLines
...
* 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>
* gcc-target 5.1: fix for libcc1Robert Yang2015-07-274-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* gcc5: Upgrade from 5.1 to 5.2Khem Raj2015-07-2754-236/+6
| | | | | | | | | | | This is second bugfix release in gcc5 series All backported patches are dropped no other patches needed any rework (From OE-Core rev: 2a212e56a814e5dc8a8bae4974b91109ed0486ef) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: remove EXTRA_OECONF_INTERMEDIATERobert Yang2015-07-124-31/+0
| | | | | | | | | The gcc-intermediate had been gone, so remove EXTRA_OECONF_INTERMEDIATE. (From OE-Core rev: 00ffc14c57598e845281e151589292573905b03c) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-5: Backport patches for -Wno-narrowing behaviour fixesKhem Raj2015-07-124-1/+232
| | | | | | | | | | | | Chromium/CEF reveals these warnings which are then treated as errors which has been fixed on gcc_5 branch upsteam. We backport the relevant commits Change-Id: I088a1480d49cdb439c72f0e159bee6de8ba94258 (From OE-Core rev: a8a5c58ec753a8bddc824eb15b06ad4cc8bd021e) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.9: Upgrade to 4.9.3Khem Raj2015-07-123-45/+5
| | | | | | | | | | | | | | | Drop upsteamed patch for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66483 which is already in 4.9.3 rename 0063-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch to 0062-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch to keep the sequence (From OE-Core rev: 626f7c1b848defe1fb34c2b2c3f0664dca2a8366) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: update i586 TARGET_ARCH tests to also handle i686Andre McCurdy2015-07-082-0/+3
| | | | | | | | (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-source.inc: fix STAMPCLEAN to avoid race issueRobert Yang2015-06-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed race issue when build more than one gcc-source and inherit rm_work, for example: $ bitbake gcc-source-4.9.2 gcc-source-5.1.0 File "/path/to/bitbake/lib/bb/build.py", line 512, in exec_task return _exec_task(fn, task, d, quieterr) File "/path/to/bitbake/lib/bb/build.py", line 489, in _exec_task make_stamp(task, localdata) File "/path/to/bitbake/lib/bb/build.py", line 599, in make_stamp os.unlink(name) OSError: [Errno 2] No such file or directory: '/path/to/tmp/stamps/work-shared/gcc-4.9.2-r0.do_rm_work_all.02cf1ed9b79d4edb0a51d3b913b7f9ba' This is because make_stamp() uses glob.glob() to remove the old stamps before create the new one, when gcc-source-5.1.0 removes gcc-4.9.2-r0's stamp, we may get the error. We can't use deltask do_rm_work_all as do_rm_work since it is a recrdeptask, otherwise: ERROR: Command execution failed: Traceback (most recent call last): File "/path/to/bitbake/lib/bb/command.py", line 102, in runAsyncCommand commandmethod(self.cmds_async, self, options) File "/path/to/bitbake/lib/bb/command.py", line 324, in generateDotGraph command.cooker.generateDotGraphFiles(pkgs_to_build, task) File "/path/to/bitbake/lib/bb/cooker.py", line 847, in generateDotGraphFiles depgraph = self.generateTaskDepTreeData(pkgs_to_build, task) File "/path/to/bitbake/lib/bb/cooker.py", line 672, in generateTaskDepTreeData rq.rqdata.prepare() File "/path/to/bitbake/lib/bb/runqueue.py", line 587, in prepare generate_recdeps(dep) File "/path/to/bitbake/lib/bb/runqueue.py", line 575, in generate_recdeps add_resolved_dependencies([taskData.tasks_fnid[t]], tasknames, newdeps) TypeError: list indices must be integers, not NoneType Update STAMPCLEAN to contain ${PV} to fix the problem. (From OE-Core rev: 9099d46a46ee511d1b7e496472c5b973e8e8feaf) 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-source.inc: set PATH for gnu-configize, not for cdAndre McCurdy2015-05-291-1/+1
| | | | | | | | | | | | | | Setting OE's PATH for the 'cd' command has no real effect. In the normal case it has no effect for the gnu-configize command either (since OE's PATH is already set in the context which runs do_preconfigure) but it may be useful when manually re-running a failed gnu-configize commandline copied from an error log, etc. (From OE-Core rev: 4321fce801daea50baaaae9ed6a141c6e7712834) Signed-off-by: Andre McCurdy <armccurdy@gmail.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>
* gcc5: Add back g++ sysroot patchRichard Purdie2015-05-142-0/+45
| | | | | | | | | | Without this, g++/c++ compilation doesn't work on target due to missing header files. Automated sanity tests fail. Add back the gcc4 patch to address this. (From OE-Core rev: 93d8becf19cc72df650d3aaff7e3ea188bd6e09e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc5: Add PR65779 patch to fix powerpc compile issuesRichard Purdie2015-05-122-0/+174
| | | | | | | | | | | | | | | | This fixes compile issues on powerpc with gcc 5 which show up with errors like: | make[2]: Entering directory '/media/build1/poky/build/tmp/work/ppc7400-poky-linux/xprop/1_1.2.2-r0/build' | powerpc-poky-linux-gcc -m32 -mhard-float -mcpu=7400 --sysroot=/media/build1/poky/build/tmp/sysroots/qemuppc -Wall -Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wbad-function-cast -Wold-style-definition -Wdeclaration-after-statement -Wunused -Wuninitialized -Wshadow -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -Wlogical-op -Werror=implicit -Werror=nonnull -Werror=init-self -Werror=main -Werror=missing-braces -Werror=sequence-point -Werror=return-type -Werror=trigraphs -Werror=array-bounds -Werror=write-strings -Werror=address -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -fno-strict-aliasing -O2 -pipe -g -feliminate-unused-debug-types -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o xprop dsimple.o clientwin.o xprop.o -lX11 | /media/build1/poky/build/tmp/sysroots/qemuppc/usr/lib/../lib/libX11.so: undefined reference to `.LCL2' | collect2: error: ld returned 1 exit status [YOCTO #7721] (From OE-Core rev: 1702f52b5860336d36fb912fbe2851437e74a7d5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.9, gcc-5: Use variable SYSTEMLIBS_DIR instead of hardcoding it for aarch64Khem Raj2015-05-094-0/+53
| | | | | | | | Change-Id: I54dc82a569f02d489137d88f16d6b768c4ab779b (From OE-Core rev: dd45caac51868263bc7e7911a9c1ac96141ed474) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Add 5 recipesKhem Raj2015-05-0948-0/+6043
| | | | | | | | | | | | | | | | | | | Drop backports obviously additionally drop local patches around parallel compilation since it got reworked upstream To select set GCCVERSION = "5.1%" SDKGCCVERSION = "5.1%" in local.conf Change-Id: Icdfa61017a617244128f361b022e7c8f1f9e0610 (From OE-Core rev: 4bc4acc67e5d7b3f27afadeda5710f9ba5f627d2) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* libgcc-initial: Correctly reflect libgcc LICENSERichard Purdie2015-04-301-0/+2
| | | | | | | | | | In an effort to clean up some of the license handling, correctly set the LICENSE of libgcc-initial to be the same as libgcc which has a GPLv3 exception. (From OE-Core rev: a3022665600bb3c08f8d4212ffa3516578e86d7c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-shared-source: Add PV to PNRichard Purdie2015-04-302-2/+3
| | | | | | | | | | | | | | | | | | This means you can have one gcc version for some gcc recipes (e.g. crosssdk/nativesdk) and another gcc version for target code. Also remove the preferred version entry from the default toolchains list since the version issue is now handled automatically. We also need to specifically handle gcc-source in the license handling code since expanding ${PV} in the base class isn't possible. Since gcc-source doesn't generate any packages directly this shouldn't be an issue and whitelisting in this way is easiest (and matches the rest of the toolchain handling). (From OE-Core rev: 67db7182faf6742b0d971d61d8c5ba34f69d2e12) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.9: backport from gcc trunk r212178Stefan Müller-Klieser2015-04-242-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | When compiling meta-toolchain-qt5 on cortexa8, the compiler throws an internal compiler error: ... qttools-opensource-src-5.3.2/src/linguist/shared/po.cpp: In function 'bool loadPO(Translator&, QIODevice&, ConversionData&)': qttools-opensource-src-5.3.2/src/linguist/shared/po.cpp:717:1: internal compiler error: in add_stores, at var-tracking.c:6000 ... Tracking this down led to https://bugs.linaro.org/show_bug.cgi?id=534 It seems the bug is well know and fixed upstream. So backporting from trunk seems to be the right solution. This fixes the compiler problem on cortexa8 and does not seem to be very invasive. The original commit can be found at: git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212178 138bc75d-0d04-0410-961f-82ee72b054a4 (From OE-Core rev: 6751ef78694783fb86e55c77afefae750ab1b610) Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> 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>
* libgcc: remove libgcov-dev from PACKAGESRobert Yang2015-04-211-4/+1
| | | | | | | | | There should be only one dev and dbg package. (From OE-Core rev: 1e9ccec936554c69ede04babee9955f25b296588) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.8: Upgrade 4.8.2 -> 4.8.4Khem Raj2015-04-0810-384/+164
| | | | | | | | | | | | Drop already applied patches This fixes random ICE seen on mips with large c++ files ( webkit ) Then there are several backports Change-Id: Ie1c3acda2fda1b6cbd356416c860938f6cbd758e (From OE-Core rev: ca228b117abe3dc40c996a006c9cbea91c17ccea) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Tweak arm multilib endian patch for baremetalRichard Purdie2015-03-311-8/+16
| | | | | | | | | In a baremetal build, TARGET_ENDIAN_OPTION isn't set leading to build failures. Add in ifdefs to avoid this. (From OE-Core rev: 3a50ec5f0142cc3a74b405dbdff264f8f862edfa) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-cross-canadian: Enable stripping and packaging of binariesRichard Purdie2015-03-201-3/+6
| | | | | | | | | 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. (From OE-Core rev: bbaf97ba38329b5221e6d4d0d18f20e6b7d6fd91) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-source: fix bug to avoid building error.Bian Naimeng2015-03-101-0/+1
| | | | | | | | | | | | | | | | gcc-source don't do do_package_write_rpm, so we should set PACKAGES = "" to avoid the building error if we want generate srpm, otherwise, we get the error as below. ERROR: Task do_deploy_archives in meta/recipes-devtools/gcc/gcc-source_4.9.bb \ depends upon non-existent task do_package_write_rpm in \ meta/recipes-devtools/gcc/gcc-source_4.9.bb (From OE-Core rev: 704fd8f1efbd7fa9368cfe4f956abf24cd58664e) Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Upgrade 4.9.1 -> 4.9.2Khem Raj2015-02-158-79/+428
| | | | | | | | | | | | | | Delete backported patch which are present in 4.9.2 backport patched from upstream gcc trunk to fix [YOCTO #6824] Change-Id: Ia0067940471d4c5d9d62089bf6f18f3a9c2bfedd (From OE-Core rev: bdd8d7db74ad6927cd54f38c3e87246a36b2c319) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-sanitizers: check gcc-build-internal before linkRobert Yang2015-02-151-1/+3
| | | | | | | | | | | | | | | The ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$mtarget may not exist when use the external sdk toolchain, we need check before link for it. Fixed: run.do_configure.12538: 149: cd: can't cd to sysroots/x86_64-linux/usr/include/gcc-build-internal-x86_64-wrs-linux (LOCAL REV: NOT UPSTREAM) -- Sent to oe-core on 20150204 (From OE-Core rev: 82166e514438eb1b562f2a4dc2f9f8fecf3f60df) 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>
* gcc-configure-common.inc: remove ac_cv_path_SEDRobert Yang2015-02-081-1/+0
| | | | | | | | | It is not needed any more since sed-native had been dropped. (From OE-Core rev: 289e433f8d0e4b5a710094e3a3c0d8e77e82e50d) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* arch-mips.inc: Change definition of TRANSLATED_TARGET_ARCHMark Hatle2015-01-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | [YOCTO #7230] In certain system configurations TRANSLATED_TARGET_ARCH will not expand in the right order for gcc-cross-candian-mips64n32 to be generated properly. This will cause SDKs to fail to generate properly. Changing the global definition of TRANSLATED_TARGET_ARCH always expands the ABIEXTENSION, which causes the OVERRIDES to pick it up as well. This effectively defines a new class of overrides for the 'n32'. The side effect is that we need to duplicate some mips64 overrides, and redefine others that were previously 'n32' or 'mips64' exclusive to have the correct semantics. (From OE-Core rev: 4b3a2b703b20583bd107f00a297d972e9bfb514a) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-sanitizers: fix licensingDan McGregor2015-01-291-0/+6
| | | | | | | | | | | | | | The sanitizer runtime library is dual-licensed under the NCSA and MIT licenses. Also make nativesdk-gcc-sanitizers use SDKGCCVERSION by default instead of GCCVERSION (From OE-Core rev: 4ed21998827060745d2858e2d6c121baf823e64a) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: ensure target gcc headers can be includedPaul Eggleton2015-01-294-0/+164
| | | | | | | | | | | | | | | | | | | | | There are a few headers installed as part of gcc-runtime (omp.h, ssp/*.h). Being installed from a recipe built for the target architecture, these are within the target sysroot and not cross/nativesdk; thus they weren't able to be found by gcc with the existing search paths. Add support for picking up these headers under the sysroot supplied on the gcc command line in order to resolve this. Thanks to Richard Purdie for giving me a number of pointers during fixing this issue. Fixes [YOCTO #7141]. (From OE-Core rev: 5c87bb9ac2b35b3f8cf2b7d3e4507e7013115162) 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/libgcc-common.inc: Add missing 'fakeroot' to two tasksMark Hatle2015-01-291-2/+2
| | | | | | | | | | | | Without the fakeroot flag the two tasks may create files or symbolic links that end up being owned by the user and not root:root as expected. (From OE-Core rev: 7e9fd9d34a540fdfc1243d059d1f13f1d09864d2) 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-runtime: Remove libgfortran data from receipeDaniel Dragomir2015-01-231-15/+0
| | | | | | | | | | | | | | | | | | | | | | | Remove libgfortran packages from PACKAGES list as long as libgfortran has separate receipe since commit 5bde5d9b39ea67f19a1a6aedd0c08c6cfedcbe5f gcc: Allow fortran to build successfully in 4.8 Otherwise, when fortran support will be enabled in the compiler, both lingfortran and gcc-runtime receipes will create the same files and will try to install them. This will cause errors: ERROR: The recipe libgfortran is trying to install files into a shared area when those files already exist. Those files and their manifest location are: ... Please verify which recipe should provide the above files. (From OE-Core rev: 872342fa3d08edede4a0105ac3ddb0f2ae3224b4) Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-sanitizers: Enable GCC sanitizersDan McGregor2015-01-233-0/+115
| | | | | | | | | | | | | | | AddressSanitizer is a fast memory error detector. ThreadSanitizer detects data races. UBSanitizer detectes undefined behaviour. All consist of compiler instrumentation and a run-time library. The compiler instrumentation was already enabled, this builds the run-time library component. (From OE-Core rev: 1709bf0c3a84bb04bc52e9104ad8e09fba6c6f91) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Disable aarch64 multilib optionsMark Hatle2014-12-232-0/+33
| | | | | | | | | | We want to revert to default gcc behavior to support oe-core's ability to change the libdir. (From OE-Core rev: 7ea9e87217c78a20cebcb16a23bfd412e276440f) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc runtime: specify license on a per package basisJoe Slater2014-12-192-0/+38
| | | | | | | | | | | | | It can be alarming to attempt to exclude GPLv3 from an image but find that libstdc++ and libgcc still show it. We indicate the license for each package to show libraries that really are just GCC-3.0-with-GCC-exception. (From OE-Core rev: 5db535a91edea439c14e75726acd23e64bb1e2ea) Signed-off-by: Joe Slater <jslater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: stub do_fetch instead of removing itRoss Burton2014-12-051-1/+4
| | | | | | | | | | | Whilst gcc doesn't have any source to fetch, it still needs a fetch task so that a world fetch can run without errors. So instead of deleting the fetch task, stub it. (From OE-Core rev: 8e68ebbddc2bc41eb6cb607c51d6a80c54c4199d) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Rework shared workRichard Purdie2014-12-037-50/+48
| | | | | | | | | | | | | | | | | | | | | 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-4.8: Drop unused patchRichard Purdie2014-11-281-33/+0
| | | | | | | | | I disabled this patch as it became obsolete some time ago but forgot to remove it, this cleans things up. (From OE-Core rev: 11dc68ef46aa0e3f28473c0decb4034e0d00fcab) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-4.9: fix the compile failure of 'defaults.h' not foundHongxu Jia2014-11-201-11/+19
| | | | | | | | | | | | | | | | | | | | | While compiling gcc-crosssdk-initial-x86_64 on some host, there is occasionally failure that test the existance of default.h doesn't work. ... | tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/gcc/calls.c:1240: error: 'STACK_CHECK_MAX_VAR_SIZE' was not declared in this scope ... The reason is tm_include_list='** defaults.h' rather than tm_include_list='** ./defaults.h' So we add the test condition for this situation. (From OE-Core rev: fec684512c6f934d7a847b0c9f5151da81426910) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: Fix intermittent failures during configureMark Hatle2014-11-093-5/+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: backport two patches to fix ICE in dwarf2out_var_locationJackie Huang2014-11-063-0/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | The first patch fixes the ICE in dwarf2out_var_location, at dwarf2out.c. r212171: * except.c (emit_note_eh_region_end): New helper function. (convert_to_eh_region_ranges): Use emit_note_eh_region_end to emit EH_REGION_END note. * jump.c (cleanup_barriers): Do not split a call and its corresponding CALL_ARG_LOCATION note. But it introduced a regression issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63348 so backport the fix for the regression as well: r215613: PR rtl-optimization/63348 * emit-rtl.c (try_split): Do not emit extra barrier. (From OE-Core rev: de52db1b1b0dbc9060dddceb42b7dd4f66a7e0f3) Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: poison default sysroot pathRichard Purdie2014-10-306-9/+9
| | | | | | | | | | | | | | | | | | | 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. (From OE-Core rev: 04b725511a505c582a3abdf63d096967f0320779) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: backport patch for gcc bug 61144Saul Wold2014-10-112-0/+32
| | | | | | | | | | | | | | This fixes gcc bug 6144, which in my case exhibited itself as a kernel module that failed to load. This was because static platform_data structures were being corrupted with the optimiser being set to any value other than -O0. Originally-submitted-by: Peter Urbanec <openembedded-devel@urbanec.net> (From OE-Core rev: 365221f7285c0e392f573deaab3b1e00b12bc293) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-runtime: Add linux-gnuspe symlink to fix c++ headersRichard Purdie2014-10-061-0/+3
| | | | | | | | | | | | | | Some architectures can mix different TARGET_OS values, in most cases we just use one but in the ppc case, can use two different values. In this case, to use one toolchain with both, we need to ensure the symlinks exist. This isn't ideal but does fix the ppc toolchains for the release, after which better ways of handling this can be investiaged. Without this, failures in the C++ toolchain are seen. (From OE-Core rev: 112641117f1152bad8a806f1aa872a67575d5316) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc-configure/gcc-common: Move preconfigure definition to common includeRichard Purdie2014-09-162-10/+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-cross-initial: Put limits.h in gccdir/includeKhem Raj2014-08-151-1/+1
| | | | | | | | | | | | | | musl e.g. is configured to not use fixed-include which is an improvement btw. but libgcc-initial configure has tests which probe for limits.h and since we put it in include-fixed/ dir and that dir does not appear in gcc's internal default search path the configure tests for CPP detection fail and libgcc-initial can not be compiled. (From OE-Core rev: 3bdc225a9e622e9d594944833964fe396200db01) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc: update compiler architecture to match gcc-runtime (armv6, armv7a)Peter A. Bigot2014-08-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | The gcc-runtime recipe builds the gcc libraries including libstdc++ with $TARGET_CC_ARCH flags, which include -march=FOO flags that affect whether atomic instructions are available. This causes an ABI incompatibility when the compiler by default generates code for less capable architectures. For example, gcc-runtime libraries on a Cortex-A8 are built with a different C++11/C++14 mutex implementation than is used code compiled outside OE and without architecture-specific flags. This commit fixes the problem specifically for ABI issues related to atomic instructions available in ARMV6 and subsequent architectures. Other ABI incompatibilities may remain in other architectures. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62100 (From OE-Core rev: 0ba6ab39f187ecd4261f08e768f365f461384a3a) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>