aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/glibc/glibc
AgeCommit message (Collapse)Author
2018-04-05cross-localedef-native: add way to specify which locale archive to writeRoss Burton
localedef has no way to specify which locale archive to use, and the compile-time default isn't useful as it points to the work directory. Add support to read an environmental variable for the path, and don't fail to write a new locale archive. (From OE-Core rev: bf0f205a3c3714926649bd69db29e4df1c0ea112) (From OE-Core rev: 38b0e8d9b1944a955e4ed682184dafdce20db4b9) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2018-04-05glibc: relocate locale paths in nativesdkRoss Burton
nativesdk is built with a specific prefix but this will be different at install time, however glibc hard-codes the path to locale files. Expand these strings to 4K and move them to a magic segment which we can relocate when the SDK is installed. (From OE-Core rev: 59e0679378aac27c4fea0b06721e0a184a93c100) (From OE-Core rev: c1f220f89496de51d3aa6eacd42cd8d3ddaad104) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (From OE-Core rev: e1faf9ac7e89d33aba33547ede19a10aaa034207) Fixup patch Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2017-12-08glibc: CVE-2017-15670Thiruvadi Rajaraman
Source: git://sourceware.org/git/glibc.git MR: 76647 Type: Security Fix Disposition: Backport from glibc-2.27 ChangeID: f4494e472d36748c2b3171a91640b26c638f6e0b Description: CVE-2017-15670: glob: Fix one-byte overflow [BZ #22320] Affects: glibc < 2.27 Signed-off-by: Thiruvadi Rajaraman <trajaraman@mvista.com> Reviewed-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Armin Kuster <akuster@mvista.com>
2017-12-08glibc: Security fix for CVE-2017-8804Rajkumar Veer
Source: https://sourceware.org MR: 74337 Type: Security Fix Disposition: Backport from https://sourceware.org/ml/libc-alpha/2017-05/msg00105.html ChangeID: c8c51220e40185dd0ac3d657046e70b82cb94bee Description: CVE-2017-8804 sunrpc: xdr_bytes/xdr_string need to free buffer on error [BZ #21461] Affects: glibc < 2.25 Signed-off-by: Rajkumar Veer <rveer@mvista.com> Reviewed-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Armin Kuster <akuster@mvista.com>
2017-12-08glibc: Fix CVE-2017-1000366George McCollister
Add backported patches from the upstream release/2.24/master branch to fix CVE-2017-1000366. Also add a backported patch that resolves SSE related build problems introduced by these patches. Signed-off-by: George McCollister <george.mccollister@gmail.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2017-12-08glibc: Fix CVE-2015-5180George McCollister
Add backported patch to fix CVE-2015-5180 from the upstream release/2.24/master branch. Signed-off-by: George McCollister <george.mccollister@gmail.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2017-12-07cross-localedef-native: Include locale_t.hJoshua Watt
Newer versions of glibc (2.26) moved the struct locale definition from xlocale.h to bits/types/locale_t.h. For compatibility with build hosts using this version of glibc, include this header. See f0be25b6336db7492e47d2e8e72eb8af53b5506d in glibc Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29glibc: fix pthread_cond_broadcast issue (arm)Catalin Enache
pthread_mutex functions such as pthread_cond_wait(), pthread_mutex_unlock() return errors after PTHREAD_PRIO_INHERIT is enabled Reference: https://sourceware.org/bugzilla/show_bug.cgi?id=18463 Upstream patches: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=f0e3925bf3b8df6940c3346db17e42615979d458 https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=13cb8f76da9d9420330796f469dbf10643ba5b12 https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=23b5cae1af04f2d912910fdaf73cb482265798c1 https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=ed19993b5b0d05d62cc883571519a67dae481a14 https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=2e4cf778972573221e9b87fd992844ea9b67b9bf https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=abff18c0c6055ca5d1cd46923fd1205c057139a5 This issue is Morty specific (glibc 2.24). The issue is no longer present in glibc 2.25 (master branch). Signed-off-by: Catalin Enache <catalin.enache@windriver.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2017-08-29glibc: Security fix CVE-2016-6323Armin Kuster
arm: mark __startcontext as .cantunwind, GNU CVE: CVE-2016-6323 Signed-off-by: Andrej Valek <andrej.valek@siemens.com> Signed-off-by: Pascal Bach <pascal.bach@siemens.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2017-05-18glibc: Fix use after free in pthread_create()Yuanjie Huang
[BZ 20116] -- https://sourceware.org/bugzilla/show_bug.cgi?id=20116 The commit documents the ownership rules around 'struct pthread' and when a thread can read or write to the descriptor. With those ownership rules in place it becomes obvious that pd->stopped_start should not be touched in several of the paths during thread startup, particularly so for detached threads. In the case of detached threads, between the time the thread is created by the OS kernel and the creating thread checks pd->stopped_start, the detached thread might have already exited and the memory for pd unmapped. As a regression test we add a simple test which exercises this exact case by quickly creating detached threads with large enough stacks to ensure the thread stack cache is bypassed and the stacks are unmapped. Before the fix the testcase segfaults, after the fix it works correctly and completes without issue. For a detailed discussion see: https://www.sourceware.org/ml/libc-alpha/2017-01/msg00505.html (cherry-picked from commit f8bf15febcaf137bbec5a61101e88cd5a9d56ca8) Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
2016-09-13glibc: remove hard-coded reference to gcc -EJérémy Rosen
Signed-off-by: Jérémy Rosen <jeremy.rosen@smile.fr> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-23glibc: Fix scope resolution in glibc to be breadth first.Mark Hatle
The ELF specification indicates symbol resolution should be breadth first, not depth first. The dl-deps.c: dl_build_locale_scope function is processing in a depth first mode. This is causes certain symbols to be incorrectly reported when LD_TRACE_PRELINKING=1 is enabled. See glibc BZ #20488 for more information. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-07-21glibc: Update to 2.24 after hard-freezeKhem Raj
Drop upstreamed patch 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>
2016-07-12glibc: add more Imagination Meta relocation to elf.hRoss Burton
glibc master added the EM_METAG tag but didn't add the relocation defines. However the kernel tooling only checks for EM_METAG when defining its own values so scripts/recordmcount ends up using R_META_* symbols without their definition. Whilst the kernel can and should be fixed, this breaks all users of recordmcount so patch elf.h to add the values. Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-21nativesdk-glibc: Extend relocation support to localesRichard Purdie
Currently locales are not found in a relocated buildtools-tarball such as that used in eSDK. This breaks bitbake when used under python3. This patch adds enough relocation magic to nativesdk-glibc so that the binary locales can be found even in a relocated buildtools-tarball and bitbake works successfully under python3. The eSDK also works correctly after this change too. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-18glibc: Add missing patch hunk backRichard Purdie
This hunk of patch went missing during the glibc upgrade to 2.24 and without it, uninative-tarball doesn't work properly. This adds it back so we can spin a new version of uninative. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-14glibc: Add recipes for 2.24 releaseKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-04-06glibc: remove unused CVE patchesRobert Yang
They were CEVs and should be already in the source after upgraded. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-07glibc: Add relocation of GCONV_PATHRichard Purdie
We're seeing various failures where nativesdk glibc can't find the gconv modules. We've tried various workaround but this needs fixing 'properly'. One significant problem is knowing when a binary would use this glibc and hence when to set the path and when not to. Add the default path to its own special section which the sdk relocation script already knows how to handle and remap. This significantly improves the usability of uninative. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-21glibc: Upgrade to 2.23Khem Raj
Drop kconfig and options-group support Forward port cross-localedef support Assume ssp support in libc when building gcc-initial Signed-off-by: Khem Raj <raj.khem@gmail.com>
2016-02-18glibc: Security fix CVE-2015-7547Armin Kuster
CVE-2015-7547: getaddrinfo() stack-based buffer overflow Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-18glibc: CVE-2015-8776Armin Kuster
it was found that out-of-range time values passed to the strftime function may cause it to crash, leading to a denial of service, or potentially disclosure information. Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-18glibc: CVE-2015-9761Armin Kuster
A stack overflow vulnerability was found in nan* functions that could cause applications which process long strings with the nan function to crash or, potentially, execute arbitrary code. Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-18glibc: CVE-2015-8779Armin Kuster
A stack overflow vulnerability in the catopen function was found, causing applications which pass long strings to the catopen function to crash or, potentially execute arbitrary code. Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-18glibc: CVE-2015-8777.patchArmin Kuster
The process_envvars function in elf/rtld.c in the GNU C Library (aka glibc or libc6) before 2.23 allows local users to bypass a pointer-guarding protection mechanism via a zero value of the LD_POINTER_GUARD environment variable. Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-26meta: fix capitalisation in Upstream-StatusRoss Burton
Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-12-01glibc/0029-fix-getmnt-empty-lines.patch: fix getmntent()Peter Seebach
When confronted with an empty line, getmntent() can underrun a buffer, possibly doing very strange things if it finds additional space/tab characters. Backport the upstream fix. Signed-off-by: Peter Seebach <peter.seebach@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-12-01glibc: Backported a patch to fix glibc's bug(18589)Li Xin
Also Fix LSB NG cases: * /tset/ANSI.os/locale/setlocale/T.setlocale 1 2 4 5 15 * /tset/ANSI.os/string/strcoll_X/T.strcoll_X 1 * /tset/LI18NUX2K.L1/base/wcscoll/T.wcscoll 1 * /tset/LI18NUX2K.L1/utils/localedef/T.localedef 7 * /tset/LI18NUX2K.L1/utils/sort/T.sort 1 3 17 19 33 35 * /tset/LI18NUX2K.L1/utils/comm/T.comm 1 2 * /tset/LI18NUX2K.L1/utils/ls-fh/T.ls-fh 2 This patch is backported from https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6c84109cfa26f35c3dfed3acb97d347361bd5849 Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-11-25glibc: fix Upstream-Status tagRoss Burton
Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-11-16glibc: Fix ld.so / prelink interface for ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATAMark Hatle
A bug in glibc 2.22's ld.so interface for the prelink support causes the displayed values to be incorrect. The included path fixes this issue. Clear ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA for prelink prelink runs ld.so with the environment variable LD_TRACE_PRELINKING set to dump the relocation type class from _dl_debug_bindings. prelink has the following relocation type classes: where ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA has a conflict with RTYPE_CLASS_TLS. Since prelink doesn't use ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA, we should clear the ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA bit when the DL_DEBUG_PRELINK bit is set. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2015-10-29glibc: Allow 64 bit atomics for x86Juro Bystricky
The fix consist of allowing 64bit atomic ops for x86. This should be safe for i586 and newer CPUs. It also makes the synchronization more efficient. [YOCTO #8140] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-16glibc: don't require bash for nscd init scriptRoss Burton
The nscd init script uses #! /bin/bash but only really uses one bashism (translated strings), so remove them and switch the shell to #! /bin/sh. Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-08-16glibc: Upgrade 2.21 -> 2.22Khem Raj
- git'ify the OE patches - add_resource_h_to_wait_h.patch - dropped, we do not support that old perf anymore - mips-rld-map-check.patch - Dropped because binutils is fixed for it see https://sourceware.org/ml/binutils/2011-12/msg00112.html - initgroups_keys.patch - Folded into 0026-eglibc-Forward-port-eglibc-options-groups-support.patch Change-Id: Ib8e731b212f52b8ff12e2180babbc19970fb1ef1 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-07-07glibc: fix typo in add_resource_h_to_wait_h.patchAndre McCurdy
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-03glibc: Fix __memcpy_chk on non-SSE2 CPUsAndre McCurdy
Backport from upstream glibc: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=132a1328eccd20621b77f7810eebbeec0a1af187 Note that the fix is only required when glibc is built for i686/multiarch, so is not applicable in the default oe-core x86 configuration (which builds glibc for i586 and therefore does not include SSE2 optimised memcpy etc). Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-05-23eglibc-use-option-groups: Conditionally exclude c++ testsJuro Bystricky
Some test programs written in c++ are still included in spite of "libc-cxx-tests" being omitted from DISTRO_FEATURES_LIBC. All .cc programs are compiled with g++. g++ automatically specifies linking against the C++ library. This patch conditionally excludes the following tests as well: bug-atexit3-lib.cc tst-cancel24.cc tst-cancel24-static.cc tst-unique3lib.cc tst-unique3lib2.cc tst-unique4lib.cc tst-unique3.cc tst-unique4.cc Tested with DISTRO_FEATURES_LIBC_remove = " libc-cxx-tests" [YOCTO #7003] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-16glibc: CVE-2015-1781: resolv/nss_dns/dns-host.c buffer overflowHaris Okanovic
Backport Arjun Shankar's patch for CVE-2015-1781: A buffer overflow flaw was found in the way glibc's gethostbyname_r() and other related functions computed the size of a buffer when passed a misaligned buffer as input. An attacker able to make an application call any of these functions with a misaligned buffer could use this flaw to crash the application or, potentially, execute arbitrary code with the permissions of the user running the application. https://sourceware.org/bugzilla/show_bug.cgi?id=18287 Signed-off-by: Haris Okanovic <haris.okanovic@ni.com> Reviewed-by: Ben Shelton <ben.shelton@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-14glibc: Fix x32 make raceRichard Purdie
On x32 builds, sysd-syscalls appears malformed since the make-target-directory appears on the wrong line. This causes races during the build process where you can see failures like: Assembler messages: Fatal error: can't create [...]glibc/2.21-r0/build-x86_64-poky-linux-gnux32/time/gettimeofday.os: No such file or directory Assembler messages: Fatal error: can't create [...]glibc/2.21-r0/build-x86_64-poky-linux-gnux32/time/time.os: No such file or directory The issue is that the carriage return is being escaped when it should not be. The change to sysd-syscalls with this change: before: """ $(foreach p,$(sysd-rules-targets),$(objpfx)$(patsubst %,$p,time).os): \ $(..)sysdeps/unix/make-syscalls.sh $(make-target-directory) (echo '#include <dl-vdso.h>'; """ after: """ $(foreach p,$(sysd-rules-targets),$(objpfx)$(patsubst %,$p,time).os): \ $(..)sysdeps/unix/make-syscalls.sh $(make-target-directory) (echo '#include <dl-vdso.h>'; """ which ensures the target directory is correctly created. Only x32 uses the vdso code which contains the bug which is why the error only really appears on x32. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-02glibc: fix a typoRobert Yang
Fixed a typo: name-target-directory -> make-target-directory There is no name-target-directory, it should be make-target-directory, this fixed the error: /bin/bash: /path/to/elf/runtime-linker.T: No such file or directory Makefile:361: recipe for target '/path/to/elf/runtime-linker.st' failed Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-03-09glibc: 'yes' within the path sets wrong variablesBenjamin Esquivel
The AC_EGREP_CPP macro is looking for a 'yes' string that is likely to be found in the path where the file is stored. This false positive match causes variables to be mistakenly set. The fix is to use a more elaborated string instead. This has to be done at the configure and the configure.ac files, because a reconfigure does not happen in the regular build flow. [YOCTO #6614] Signed-off-by: Benjamin Esquivel <benjamin.esquivel@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-02-24glibc: Help compile with -OsKhem Raj
When we modify to use -Os -Werror doesnt go well with it, glibc needs to be cleaned up for that but until then lets disable -Werror when using -Os Also updates the options group patch to work better with -Os. Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-19glibc: Upgrade 2.20 -> 2.21Khem Raj
Drop CVE backports and ppc/fpu detection patch which is not needed anymore Forward port eglibc option groups patch Default to using glibc 2.21 Additional patches needed to appease -Werror option Change-Id: I1873097cec8387ea9e8186a255122938fc28c976 Signed-off-by: Khem Raj <raj.khem@gmail.com>
2015-02-07glibc: Re-enable upstream __USE_KERNEL_XATTR_DEFS patchKhem Raj
Re-introduce https://sourceware.org/git/?p=glibc.git;a=commit;h=fdbe8eae2b9aed74dabba1b0a189c5d7d61bf032 This patch was overzealously removed during option groups forward port Change-Id: I8dd01902ae8e5ee8b5c6fc9dc39c7216952dca51 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-01-28eglibc-use-option-groups.patch: Various fixupsJuro Bystricky
Build suppport for mutibyte character handling only when __OPTION_EGLIBC_LOCALE_CODE evaluates to 1. Fixes missing .out suffix for several tests to be built. Fixes building of locales needed for several tests. Do not use cross-localedef to build locales. Use localedef built with the newly built libgc instead. Fixes: [YOCTO #6809] [YOCTO #6796] [YOCTO #6797] Signed-off-by: Juro Bystricky <jurobystricky@hotmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-01-28glibc: CVE-2014-9402 endless loop in getaddr_rArmin Kuster
The getnetbyname function in glibc 2.21 in earlier will enter an infinite loop if the DNS backend is activated in the system Name Service Switch configuration, and the DNS resolver receives a positive answer while processing the network name. Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-01-16glibc: Fix up minimal build with libc-libmSaul Wold
This addresses 2 issues discovered trying to build a minimal libc with libm option. By default nscd was always being built and without inet enabled there were missing symbols. [YOCTO #7108] Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-12-19glibc: CVE 2014-7817 and 2012-3406 fixesArmin Kuster
Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-12-05eglibc: modified option-groups.h generationJuro Bystricky
option-groups.h only explicitely #defines options that are enabled. EGLIBC options are typically pre-processed under the assumption that if an option is not explicitely defined then it evaluates as 0. This assumption is correct, but it generates a compiler warning message each time an undefined symbol is being evaluated. In order to remove the warnings, each EGLIBC option is now defined as 1 if the option is enabled or as 0 otherwise. The consequence is we cannot use #ifdef OPTION_XXX when evaluating the option, we must always use #if OPTION_XXX. [YOCTO #7001] Signed-off-by: Juro Bystricky <jurobystricky@hotmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-10-10glibc: remove bad patch snippet that eglibc forward portedSaul Wold
The s_sin.c patch undoes some code changes in glibc itself, these changes have nothing to do with the option groups and I suspect crept in as part of the initial conversion. Undoing this patch also fixes a test failure in test-double and test-idouble. [YOCTO #6808] Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-10glibc: Incremental bump to 2.20 release branchKhem Raj
Now that glibc 2.20 has been released. We switch to use release branch and remove the already applied patch Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>