mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
uninative: rebuild uninative for gcc 4.8 and 4.9
Some c++ libraries fail to build if uninative is built with gcc 5.x and host gcc version is either 4.8 or 4.9. The issue should be solved by making separate uninative sstate directory structure sstate-cache/universal-<gcc version> for host gcc versions 4.8 and 4.9. This causes rebuilds of uninative if host gcc is either 4.8 or 4.9 and it doesn't match gcc version used to build uninative. [YOCTO #10441] (From OE-Core rev: d36f41e5658bbbb6080ee833027879c119edf3e0) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
76ba70fcaa
commit
c21cec8488
|
@ -374,8 +374,9 @@ python copy_buildsystem () {
|
|||
|
||||
sstate_out = baseoutpath + '/sstate-cache'
|
||||
bb.utils.remove(sstate_out, True)
|
||||
# uninative.bbclass sets NATIVELSBSTRING to 'universal'
|
||||
fixedlsbstring = 'universal'
|
||||
|
||||
# uninative.bbclass sets NATIVELSBSTRING to 'universal%s' % oe.utils.host_gcc_version(d)
|
||||
fixedlsbstring = "universal%s" % oe.utils.host_gcc_version(d)
|
||||
|
||||
sdk_include_toolchain = (d.getVar('SDK_INCLUDE_TOOLCHAIN', True) == '1')
|
||||
sdk_ext_type = d.getVar('SDK_EXT_TYPE', True)
|
||||
|
|
|
@ -88,7 +88,7 @@ def enable_uninative(d):
|
|||
loader = d.getVar("UNINATIVE_LOADER", True)
|
||||
if os.path.exists(loader):
|
||||
bb.debug(2, "Enabling uninative")
|
||||
d.setVar("NATIVELSBSTRING", "universal")
|
||||
d.setVar("NATIVELSBSTRING", "universal%s" % oe.utils.host_gcc_version(d))
|
||||
d.appendVar("SSTATEPOSTUNPACKFUNCS", " uninative_changeinterp")
|
||||
d.prependVar("PATH", "${STAGING_DIR}-uninative/${BUILD_ARCH}-linux${bindir_native}:")
|
||||
|
||||
|
|
|
@ -230,6 +230,20 @@ def format_pkg_list(pkg_dict, ret_format=None):
|
|||
|
||||
return '\n'.join(output)
|
||||
|
||||
def host_gcc_version(d):
|
||||
compiler = d.getVar("BUILD_CC", True)
|
||||
retval, output = getstatusoutput("%s --version" % compiler)
|
||||
if retval:
|
||||
bb.fatal("Error running %s --version: %s" % (compiler, output))
|
||||
|
||||
import re
|
||||
match = re.match(".* (\d\.\d)\.\d.*", output.split('\n')[0])
|
||||
if not match:
|
||||
bb.fatal("Can't get compiler version from %s --version output" % compiler)
|
||||
|
||||
version = match.group(1)
|
||||
return "-%s" % version if version in ("4.8", "4.9") else ""
|
||||
|
||||
#
|
||||
# Python 2.7 doesn't have threaded pools (just multiprocessing)
|
||||
# so implement a version here
|
||||
|
|
Loading…
Reference in New Issue
Block a user