Make build-many-glibcs.py work on python3.2

I used this patch to run the new build script with python3.2, it may be worth
adding this hack if python3.5 is not widespread (might work with older python,
i haven't tested that).

This patch make build-many-glibcs.py work with python 3.2 by
adding fallback implementation to python 3.5 facilities if they
are not present.

Checked building a x86_64-linux-gnu toolchain with python 3.2.

2016-11-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* scripts/build-many-glibcs.py (os.cpu_count): Add compatibility definition.
	(re.fullmatch, subprocess.run): Likewise.
This commit is contained in:
Szabolcs Nagy 2017-01-10 16:31:19 -02:00 committed by Adhemerval Zanella
parent 77847b5cc3
commit 64235ccc11
2 changed files with 42 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2017-01-11 Szabolcs Nagy <szabolcs.nagy@arm.com>
* scripts/build-many-glibcs.py (os.cpu_count): Add compatibility definition.
(re.fullmatch, subprocess.run): Likewise.
2016-01-11 Siddhesh Poyarekar <siddhesh@sourceware.org>
* po/libc.pot: Regenerate.

View File

@ -49,6 +49,43 @@ import sys
import time
import urllib.request
try:
os.cpu_count
except:
import multiprocessing
os.cpu_count = lambda: multiprocessing.cpu_count()
try:
re.fullmatch
except:
re.fullmatch = lambda p,s,f=0: re.match(p+"\\Z",s,f)
try:
subprocess.run
except:
class _CompletedProcess:
def __init__(self, args, returncode, stdout=None, stderr=None):
self.args = args
self.returncode = returncode
self.stdout = stdout
self.stderr = stderr
def _run(*popenargs, input=None, timeout=None, check=False, **kwargs):
assert(timeout is None)
with subprocess.Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input)
except:
process.kill()
process.wait()
raise
returncode = process.poll()
if check and returncode:
raise subprocess.CalledProcessError(returncode, popenargs)
return _CompletedProcess(popenargs, returncode, stdout, stderr)
subprocess.run = _run
class Context(object):
"""The global state associated with builds in a given directory."""