aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc
AgeCommit message (Collapse)Author
2015-09-12gcc: reformat 0063-nativesdk-gcc-support.patchRoy Li
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. Signed-off-by: Roy Li <rongqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-12meta: Fix Upstream-Status statementsRoss Burton
Fix a variety of problems such as typos, bad punctuations, or incorrect Upstream-Status values. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-12gcc-5.2: remake 0040-nativesdk-gcc-support.patchRobert Yang
It couldn't be applied by sled11's patch, now fix it. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-09-03gcc-target.inc: Remove non-related gcc headers from include_fixed folderLeonardo Sandoval
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] Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-30libgcc-common.inc: overrides for libc-baremetalJuro Bystricky
Added TCLIBC="baremetal" specific overrides. (From OE-Core rev: 044f989b34e46f919e6b28860d7a1b396b2c3808) 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-08-30gcc-cross.inc: overrides for libc-baremetalJuro Bystricky
Modifications to to support build for TCLIBC="baremetal" (From OE-Core rev: 9e7da158e0e7628c22013fbee34270f7d2db621f) 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-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-08-29gcc-source: exlude from worldRandy MacLeod
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. Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-31gcc-multilib-config: Adapt mips for mips64 and different gcc versionsRichard Purdie
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). Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-31cross-canadian/gcc: Various mips64 fixesRichard Purdie
"n32" is a mips64 variant we need to consider when processing the TARGET_OS extensions. Also add the multilib extensions for mips64. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-31libgcc: Fix symlink handling in cross-arch multilib casesRichard Purdie
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). Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-31gcc-multilib-config: Tweak naming of options to match gcc's expectationsRichard Purdie
gcc itself does not add the '-' of options to its multilib configuration. We should follow its example. 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-07-31gcc: Add patch to handle on target multilibs betterRichard Purdie
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-31gcc: Add support for nativesdk-gccRichard Purdie
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-27gcc-target 5.1: fix for libcc1Robert Yang
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] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-27gcc5: Upgrade from 5.1 to 5.2Khem Raj
This is second bugfix release in gcc5 series All backported patches are dropped no other patches needed any rework Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-12gcc: remove EXTRA_OECONF_INTERMEDIATERobert Yang
The gcc-intermediate had been gone, so remove EXTRA_OECONF_INTERMEDIATE. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-12gcc-5: Backport patches for -Wno-narrowing behaviour fixesKhem Raj
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 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-12gcc-4.9: Upgrade to 4.9.3Khem Raj
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 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-07gcc: update i586 TARGET_ARCH tests to also handle i686Andre McCurdy
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-06-11gcc-source.inc: fix STAMPCLEAN to avoid race issueRobert Yang
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. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-05-27gcc-source.inc: set PATH for gnu-configize, not for cdAndre McCurdy
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. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-14gcc-5: fix installed-vs-shippedRobert Yang
gcc-5.1.0: gcc: Files/directories were installed but not shipped in any package: /usr/bin/i586-poky-linux-gcov-tool Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-14gcc5: Add back g++ sysroot patchRichard Purdie
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-12gcc5: Add PR65779 patch to fix powerpc compile issuesRichard Purdie
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] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-09gcc-4.9, gcc-5: Use variable SYSTEMLIBS_DIR instead of hardcoding it for aarch64Khem Raj
Change-Id: I54dc82a569f02d489137d88f16d6b768c4ab779b Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-09gcc: Add 5 recipesKhem Raj
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 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-30libgcc-initial: Correctly reflect libgcc LICENSERichard Purdie
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-30gcc-shared-source: Add PV to PNRichard Purdie
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). Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-24gcc-4.9: backport from gcc trunk r212178Stefan Müller-Klieser
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 Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-21gcc-target: remove gcc-plugin-dev from PACKAGESRobert Yang
There should be only one dev and dbg package. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-21libgcc: remove libgcov-dev from PACKAGESRobert Yang
There should be only one dev and dbg package. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-08gcc-4.8: Upgrade 4.8.2 -> 4.8.4Khem Raj
Drop already applied patches This fixes random ICE seen on mips with large c++ files ( webkit ) Then there are several backports Change-Id: Ie1c3acda2fda1b6cbd356416c860938f6cbd758e Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-03-29gcc: Tweak arm multilib endian patch for baremetalRichard Purdie
In a baremetal build, TARGET_ENDIAN_OPTION isn't set leading to build failures. Add in ifdefs to avoid this. 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>
2015-03-09gcc-source: fix bug to avoid building error.Bian Naimeng
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 Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-02-15gcc: Upgrade 4.9.1 -> 4.9.2Khem Raj
Delete backported patch which are present in 4.9.2 backport patched from upstream gcc trunk to fix [YOCTO #6824] Change-Id: Ia0067940471d4c5d9d62089bf6f18f3a9c2bfedd Signed-off-by: Khem Raj <raj.khem@gmail.com>
2015-02-14gcc-sanitizers: check gcc-build-internal before linkRobert Yang
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 Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2015-02-13gcc-target: Don't install target gcc libdir filesRichard Purdie
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] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-07gcc-configure-common.inc: remove ac_cv_path_SEDRobert Yang
It is not needed any more since sed-native had been dropped. Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2015-01-29arch-mips.inc: Change definition of TRANSLATED_TARGET_ARCHMark Hatle
[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. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2015-01-28gcc-sanitizers: fix licensingDan McGregor
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 Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-01-28gcc: ensure target gcc headers can be includedPaul Eggleton
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]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-01-28gcc/libgcc-common.inc: Add missing 'fakeroot' to two tasksMark Hatle
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. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-01-23gcc-runtime: Remove libgfortran data from receipeDaniel Dragomir
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. Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-01-23gcc-sanitizers: Enable GCC sanitizersDan McGregor
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. Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
2014-12-22gcc: Disable aarch64 multilib optionsMark Hatle
We want to revert to default gcc behavior to support oe-core's ability to change the libdir. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-19gcc runtime: specify license on a per package basisJoe Slater
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. Signed-off-by: Joe Slater <jslater@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-12-05gcc: stub do_fetch instead of removing itRoss Burton
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. Signed-off-by: Ross Burton <ross.burton@intel.com>