| 
24 | 24 | from os import makedirs, write, remove  | 
25 | 25 | from tempfile import mkstemp  | 
26 | 26 | from shutil import rmtree  | 
27 |  | -from distutils.version import LooseVersion  | 
 | 27 | +from sys import version_info  | 
28 | 28 | 
 
  | 
29 | 29 | from tools.toolchains.mbed_toolchain import (  | 
30 | 30 |     mbedToolchain, TOOLCHAIN_PATHS, should_replace_small_c_lib  | 
31 | 31 | )  | 
32 | 32 | from tools.utils import mkdir, NotSupportedException, run_cmd  | 
33 | 33 | from tools.resources import FileRef  | 
34 | 34 | 
 
  | 
 | 35 | +if version_info >= (3,10):  | 
 | 36 | +    from packaging.version import Version  | 
 | 37 | +else:  | 
 | 38 | +    from distutils.version import LooseVersion as Version   | 
 | 39 | + | 
35 | 40 | ARMC5_MIGRATION_WARNING = (  | 
36 | 41 |     "Warning: Arm Compiler 5 is no longer supported as of Mbed 6. "  | 
37 | 42 |     "Please upgrade your environment to Arm Compiler 6 "  | 
@@ -59,7 +64,7 @@ class ARM(mbedToolchain):  | 
59 | 64 |         "Cortex-M0", "Cortex-M0+", "Cortex-M3", "Cortex-M4", "Cortex-M4F",  | 
60 | 65 |         "Cortex-M7", "Cortex-M7F", "Cortex-M7FD", "Cortex-A5", "Cortex-A9"  | 
61 | 66 |     ]  | 
62 |  | -    ARMCC_RANGE = (LooseVersion("5.06"), LooseVersion("5.07"))  | 
 | 67 | +    ARMCC_RANGE = (Version("5.06"), Version("5.07"))  | 
63 | 68 |     ARMCC_PRODUCT_RE = re.compile(b"Product: (.*)")  | 
64 | 69 |     ARMCC_VERSION_RE = re.compile(b"Component: ARM Compiler (\d+\.\d+)")  | 
65 | 70 | 
 
  | 
@@ -142,7 +147,7 @@ def version_check(self):  | 
142 | 147 |         output = stdout.encode("utf-8")  | 
143 | 148 |         match = self.ARMCC_VERSION_RE.search(output)  | 
144 | 149 |         if match:  | 
145 |  | -            found_version = LooseVersion(match.group(1).decode("utf-8"))  | 
 | 150 | +            found_version = Version(match.group(1).decode("utf-8"))  | 
146 | 151 |         else:  | 
147 | 152 |             found_version = None  | 
148 | 153 |         min_ver, max_ver = self.ARMCC_RANGE  | 
@@ -546,7 +551,7 @@ class ARMC6(ARM_STD):  | 
546 | 551 |         "Cortex-M33-NS", "Cortex-M33F-NS", "Cortex-M33FE-NS", "Cortex-M33FE",  | 
547 | 552 |         "Cortex-A5", "Cortex-A9"  | 
548 | 553 |     ]  | 
549 |  | -    ARMCC_RANGE = (LooseVersion("6.10"), LooseVersion("7.0"))  | 
 | 554 | +    ARMCC_RANGE = (Version("6.10"), Version("7.0"))  | 
550 | 555 |     LD_DIAGNOSTIC_PATTERN = re.compile(  | 
551 | 556 |         '(?P<severity>Warning|Error): (?P<message>.+)'  | 
552 | 557 |     )  | 
 | 
0 commit comments