diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rwxr-xr-x | scripts/build-many-glibcs.py | 37 |
2 files changed, 42 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index e1cb0378f6..4f87985cdb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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. diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py index 60a7874875..d27e70b8bd 100755 --- a/scripts/build-many-glibcs.py +++ b/scripts/build-many-glibcs.py @@ -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.""" |