From e7489766eb8810f223e1a2aee293257ad7d340c9 Mon Sep 17 00:00:00 2001 From: 0xc0170 Date: Thu, 21 Jul 2016 14:25:47 +0100 Subject: [PATCH] ARM toolchain - add support for small-build Same as for GCC, if small-build is selected, select microlib library. This is currently duplicated from microlib. I assume we deprecate microlib toolchain, thus duplication should be removed. --- tools/toolchains/arm.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tools/toolchains/arm.py b/tools/toolchains/arm.py index 29a1644e0e6..2473754c950 100644 --- a/tools/toolchains/arm.py +++ b/tools/toolchains/arm.py @@ -81,6 +81,34 @@ def __init__(self, target, options=None, notify=None, macros=None, silent=False, self.ar = join(ARM_BIN, "armar") self.elf2bin = join(ARM_BIN, "fromelf") + # Use latest gcc nanolib + if "big-build" in self.options: + use_microlib = False + elif "small-build" in self.options: + use_microlib = True + elif target.default_build == "standard": + use_microlib = False + elif target.default_build == "small": + use_microlib = True + else: + use_microlib = False + + if use_microlib: + # Extend flags + self.flags['common'] += ["-D__MICROLIB, -DMBED_RTOS_SINGLE_THREAD"] + self.flags['c'] += ["--library_type=microlib"] + self.flags['ld'] += ["--library_type=microlib"] + + # Run-time values + self.asm += ["-D__MICROLIB"] + self.cc += ["-D__MICROLIB", "--library_type=microlib"] + self.cppc += ["-D__MICROLIB", "--library_type=microlib"] + self.ld += ["--library_type=microlib"] + + # Only allow a single thread + self.cc += ["-DMBED_RTOS_SINGLE_THREAD"] + self.cppc += ["-DMBED_RTOS_SINGLE_THREAD"] + def parse_dependencies(self, dep_path): dependencies = [] for line in open(dep_path).readlines():