Merge pull request #307 from ARMmbed/thread_safe_lib

Thread safe lib
Sam Grove 2016-06-12 23:18:52 +01:00 committed by GitHub
commit 37b52a1d0f
3 changed files with 20 additions and 2 deletions

View File

@ -1 +1 @@
https://github.com/mbedmicro/mbed/#df0c855df97688074545693f66bcca5cf9f42111
https://github.com/mbedmicro/mbed/#5acdad9fd7b334a5a2fbe2f927f0a091ae0a914e

View File

@ -242,6 +242,10 @@ class ARM_MICRO(ARM):
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"]
# We had to patch microlib to add C++ support
# In later releases this patch should have entered mainline
if ARM_MICRO.PATCHED_LIBRARY:

View File

@ -252,8 +252,22 @@ class GCC_ARM(GCC):
GCC.__init__(self, target, options, notify, macros, silent, GCC_ARM_PATH, extra_verbose=extra_verbose)
# Use latest gcc nanolib
if "thread-safe" not in self.options:
if "big-build" in self.options:
use_nano = False
elif "small-build" in self.options:
use_nano = True
elif target.default_build == "standard":
use_nano = False
elif target.default_build == "small":
use_nano = True
else:
use_nano = False
if use_nano:
self.ld.append("--specs=nano.specs")
self.cc += ["-DMBED_RTOS_SINGLE_THREAD"]
self.cppc += ["-DMBED_RTOS_SINGLE_THREAD"]
if target.name in ["LPC1768", "LPC4088", "LPC4088_DM", "LPC4330", "UBLOX_C027", "LPC2368"]:
self.ld.extend(["-u _printf_float", "-u _scanf_float"])
elif target.name in ["RZ_A1H", "VK_RZ_A1H", "ARCH_MAX", "DISCO_F407VG", "DISCO_F429ZI", "DISCO_F469NI", "NUCLEO_F401RE", "NUCLEO_F410RB", "NUCLEO_F411RE", "NUCLEO_F446RE", "ELMO_F411RE", "MTS_MDOT_F411RE", "MTS_DRAGONFLY_F411RE", "DISCO_F746NG"]: