mirror of
https://git.yoctoproject.org/poky
synced 2026-06-02 01:19:52 +00:00
sanity: Switch to make 4.0 as a minimum version
We can't build glibc without make 4.0 and we don't work on older distros with older versions of make without buildtools tarball so increase the minimum version to 4.0. (From OE-Core rev: e9a449aeec72a698206323c3471c9268f949b1ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -432,8 +432,7 @@ def check_patch_version(sanity_data):
|
|||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
return "Unable to execute patch --version, exit code %d:\n%s\n" % (e.returncode, e.output)
|
return "Unable to execute patch --version, exit code %d:\n%s\n" % (e.returncode, e.output)
|
||||||
|
|
||||||
# Unpatched versions of make 3.82 are known to be broken. See GNU Savannah Bug 30612.
|
# Glibc needs make 4.0 or later, we may as well match at this point
|
||||||
# Use a modified reproducer from http://savannah.gnu.org/bugs/?30612 to validate.
|
|
||||||
def check_make_version(sanity_data):
|
def check_make_version(sanity_data):
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
@@ -442,31 +441,8 @@ def check_make_version(sanity_data):
|
|||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
return "Unable to execute make --version, exit code %d\n%s\n" % (e.returncode, e.output)
|
return "Unable to execute make --version, exit code %d\n%s\n" % (e.returncode, e.output)
|
||||||
version = result.split()[2]
|
version = result.split()[2]
|
||||||
if bb.utils.vercmp_string_op(version, "3.82", "=="):
|
if bb.utils.vercmp_string_op(version, "4.0", "<"):
|
||||||
# Construct a test file
|
return "Please install a make version of 4.0 or later.\n"
|
||||||
f = open("makefile_test", "w")
|
|
||||||
f.write("makefile_test.a: makefile_test_a.c makefile_test_b.c makefile_test.a( makefile_test_a.c makefile_test_b.c)\n")
|
|
||||||
f.write("\n")
|
|
||||||
f.write("makefile_test_a.c:\n")
|
|
||||||
f.write(" touch $@\n")
|
|
||||||
f.write("\n")
|
|
||||||
f.write("makefile_test_b.c:\n")
|
|
||||||
f.write(" touch $@\n")
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
# Check if make 3.82 has been patched
|
|
||||||
try:
|
|
||||||
subprocess.check_call(['make', '-f', 'makefile_test'])
|
|
||||||
except subprocess.CalledProcessError as e:
|
|
||||||
return "Your version of make 3.82 is broken. Please revert to 3.81 or install a patched version.\n"
|
|
||||||
finally:
|
|
||||||
os.remove("makefile_test")
|
|
||||||
if os.path.exists("makefile_test_a.c"):
|
|
||||||
os.remove("makefile_test_a.c")
|
|
||||||
if os.path.exists("makefile_test_b.c"):
|
|
||||||
os.remove("makefile_test_b.c")
|
|
||||||
if os.path.exists("makefile_test.a"):
|
|
||||||
os.remove("makefile_test.a")
|
|
||||||
|
|
||||||
if bb.utils.vercmp_string_op(version, "4.2.1", "=="):
|
if bb.utils.vercmp_string_op(version, "4.2.1", "=="):
|
||||||
distro = oe.lsb.distro_identifier()
|
distro = oe.lsb.distro_identifier()
|
||||||
|
|||||||
Reference in New Issue
Block a user