Rename "default_lib" to "c_lib".

pull/12278/head
Rajkumar Kanagaraj 2020-01-17 05:51:41 -08:00
parent b7c961c4ac
commit 8a0fdd24d9
34 changed files with 99 additions and 84 deletions

View File

@ -39,22 +39,22 @@
"mbed-trace.fea-ipv6": false "mbed-trace.fea-ipv6": false
}, },
"K64F": { "K64F": {
"target.default_lib": "small" "target.c_lib": "small"
}, },
"K66F": { "K66F": {
"target.default_lib": "small" "target.c_lib": "small"
}, },
"NUCLEO_F303RE": { "NUCLEO_F303RE": {
"target.default_lib": "small" "target.c_lib": "small"
}, },
"NUCLEO_F411RE": { "NUCLEO_F411RE": {
"target.default_lib": "small" "target.c_lib": "small"
}, },
"NUCLEO_F429ZI": { "NUCLEO_F429ZI": {
"target.default_lib": "small" "target.c_lib": "small"
}, },
"DISCO_L475VG_IOT01A": { "DISCO_L475VG_IOT01A": {
"target.default_lib": "small" "target.c_lib": "small"
} }
} }
} }

View File

@ -16,7 +16,7 @@
"features": [], "features": [],
"detect_code": [], "detect_code": [],
"public": false, "public": false,
"default_lib": "std", "c_lib": "std",
"bootloader_supported": false, "bootloader_supported": false,
"static_memory_defines": true, "static_memory_defines": true,
"printf_lib": "std", "printf_lib": "std",

View File

@ -335,12 +335,12 @@ def is_official_target(target_name, version):
("following toolchains: %s" % ("following toolchains: %s" %
", ".join(sorted(supported_toolchains))) ", ".join(sorted(supported_toolchains)))
elif not target.default_lib == 'std': elif not target.c_lib == 'std':
result = False result = False
reason = ("Target '%s' must set the " % target.name) + \ reason = ("Target '%s' must set the " % target.name) + \
("'default_lib' to 'std' to be included in the ") + \ ("'c_lib' to 'std' to be included in the ") + \
("mbed OS 5.0 official release." + linesep) + \ ("mbed OS 5.0 official release." + linesep) + \
("Currently it is set to '%s'" % target.default_lib) ("Currently it is set to '%s'" % target.c_lib)
else: else:
result = False result = False

View File

@ -90,7 +90,7 @@ def check_device_has(dict):
yield "%s is not allowed in device_has" % name yield "%s is not allowed in device_has" % name
MCU_REQUIRED_KEYS = ["release_versions", "supported_toolchains", MCU_REQUIRED_KEYS = ["release_versions", "supported_toolchains",
"default_lib", "public", "inherits", "device_has"] "c_lib", "public", "inherits", "device_has"]
MCU_ALLOWED_KEYS = ["device_has_add", "device_has_remove", "core", MCU_ALLOWED_KEYS = ["device_has_add", "device_has_remove", "core",
"extra_labels", "features", "features_add", "extra_labels", "features", "features_add",
"features_remove", "bootloader_supported", "device_name", "features_remove", "bootloader_supported", "device_name",

View File

@ -3,7 +3,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],

View File

@ -2,7 +2,7 @@
"base": { "base": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -2,7 +2,7 @@
"first_base": { "first_base": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],
@ -18,7 +18,7 @@
"second_base": { "second_base": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": ["BOOTLOADER"], "features": ["BOOTLOADER"],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -2,7 +2,7 @@
"base": { "base": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -2,7 +2,7 @@
"base": { "base": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -2,7 +2,7 @@
"base": { "base": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -2,7 +2,7 @@
"base": { "base": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"core": "Cortex-M0", "core": "Cortex-M0",
"config": { "config": {
"par1": "v_par1_base", "par1": "v_par1_base",

View File

@ -2,7 +2,7 @@
"first_base_target": { "first_base_target": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -2,7 +2,7 @@
"base": { "base": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -2,7 +2,7 @@
"base": { "base": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -3,7 +3,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -3,7 +3,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],

View File

@ -3,7 +3,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],
@ -16,7 +16,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],
@ -16,7 +16,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],
@ -16,7 +16,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -4,7 +4,7 @@
"core": "Cortex-M0", "core": "Cortex-M0",
"extra_labels": [], "extra_labels": [],
"features": [], "features": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -2,7 +2,7 @@
"first_base": { "first_base": {
"supported_toolchains": ["GCC_ARM"], "supported_toolchains": ["GCC_ARM"],
"extra_labels": [], "extra_labels": [],
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -102,7 +102,7 @@ def test_modify_existing_target():
"features": [], "features": [],
"detect_code": [], "detect_code": [],
"public": false, "public": false,
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],
@ -130,7 +130,7 @@ def test_modify_existing_target():
"features": [], "features": [],
"detect_code": [], "detect_code": [],
"public": false, "public": false,
"default_lib": "std", "c_lib": "std",
"supported_c_libs": { "supported_c_libs": {
"arm": ["std"], "arm": ["std"],
"gcc_arm": ["std", "small"], "gcc_arm": ["std", "small"],

View File

@ -31,10 +31,10 @@ class TestArmToolchain(TestCase):
mock_target = mock.MagicMock() mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.printf_lib = "minimal-printf" mock_target.printf_lib = "minimal-printf"
mock_target.default_lib = "std" mock_target.c_lib = "std"
mock_target.supported_c_libs = {"arm": ["std"]} mock_target.supported_c_libs = {"arm": ["std"]}
mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5"] mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5"]
del mock_target.default_lib
arm_std_obj = ARM_STD(mock_target) arm_std_obj = ARM_STD(mock_target)
arm_micro_obj = ARM_MICRO(mock_target) arm_micro_obj = ARM_MICRO(mock_target)
arm_c6_obj = ARMC6(mock_target) arm_c6_obj = ARMC6(mock_target)
@ -43,12 +43,13 @@ class TestArmToolchain(TestCase):
self.assertIn("-DMBED_MINIMAL_PRINTF", arm_micro_obj.flags["common"]) self.assertIn("-DMBED_MINIMAL_PRINTF", arm_micro_obj.flags["common"])
self.assertIn("-DMBED_MINIMAL_PRINTF", arm_c6_obj.flags["common"]) self.assertIn("-DMBED_MINIMAL_PRINTF", arm_c6_obj.flags["common"])
def test_arm_default_lib(self): def test_arm_c_lib(self):
"""Test that linker flags are correctly added to an instance of ARM.""" """Test that linker flags are correctly added to an instance of ARM."""
mock_target = mock.MagicMock() mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.supported_c_libs = {"arm": ["small"]} mock_target.supported_c_libs = {"arm": ["small"]}
mock_target.default_lib = "sMALL" mock_target.c_lib = "sMALL"
del mock_target.default_lib
mock_target.default_toolchain = "ARM" mock_target.default_toolchain = "ARM"
mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5", "ARMC6"] mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5", "ARMC6"]
arm_std_obj = ARM_STD(mock_target) arm_std_obj = ARM_STD(mock_target)
@ -68,32 +69,34 @@ class TestArmToolchain(TestCase):
self.assertIn("-Wl,--library_type=microlib", arm_c6_obj.flags["cxx"]) self.assertIn("-Wl,--library_type=microlib", arm_c6_obj.flags["cxx"])
self.assertIn("--library_type=microlib", arm_c6_obj.flags["asm"]) self.assertIn("--library_type=microlib", arm_c6_obj.flags["asm"])
def test_arm_default_lib_std_exception(self): def test_arm_c_lib_std_exception(self):
"""Test that an exception is raised if the std C library is not supported for a target on the ARM toolchain.""" """Test that an exception is raised if the std C library is not supported for a target on the ARM toolchain."""
mock_target = mock.MagicMock() mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5"] mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5"]
mock_target.default_toolchain = "ARM" mock_target.default_toolchain = "ARM"
mock_target.default_lib = "std" mock_target.c_lib = "std"
del mock_target.default_lib
mock_target.supported_c_libs = {"arm": ["small"]} mock_target.supported_c_libs = {"arm": ["small"]}
with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.default_lib)): with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.c_lib)):
ARM_STD(mock_target) ARM_STD(mock_target)
with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.default_lib)): with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.c_lib)):
ARMC6(mock_target) ARMC6(mock_target)
def test_arm_default_lib_small_exception(self): def test_arm_c_lib_small_exception(self):
"""Test that an exception is raised if the small C library is not supported for a target on the ARM toolchain.""" """Test that an exception is raised if the small C library is not supported for a target on the ARM toolchain."""
mock_target = mock.MagicMock() mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.default_lib = "small" mock_target.c_lib = "small"
del mock_target.default_lib
mock_target.supported_c_libs = {"arm": ["std"]} mock_target.supported_c_libs = {"arm": ["std"]}
mock_target.default_toolchain = "ARM" mock_target.default_toolchain = "ARM"
mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5"] mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5"]
with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.default_lib)): with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.c_lib)):
ARM_STD(mock_target) ARM_STD(mock_target)
mock_target.default_toolchain = "ARMC6" mock_target.default_toolchain = "ARMC6"
with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.default_lib)): with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.c_lib)):
ARMC6(mock_target) ARMC6(mock_target)
class TestGccToolchain(TestCase): class TestGccToolchain(TestCase):
@ -105,7 +108,8 @@ class TestGccToolchain(TestCase):
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.printf_lib = "minimal-printf" mock_target.printf_lib = "minimal-printf"
mock_target.supported_toolchains = ["GCC_ARM"] mock_target.supported_toolchains = ["GCC_ARM"]
mock_target.default_lib = "std" mock_target.c_lib = "std"
del mock_target.default_lib
mock_target.supported_c_libs = {"gcc_arm": ["std"]} mock_target.supported_c_libs = {"gcc_arm": ["std"]}
mock_target.is_TrustZone_secure_target = False mock_target.is_TrustZone_secure_target = False
@ -127,12 +131,13 @@ class TestGccToolchain(TestCase):
for i in minimal_printf_wraps: for i in minimal_printf_wraps:
self.assertIn(i, gcc_obj.flags["ld"]) self.assertIn(i, gcc_obj.flags["ld"])
def test_gcc_arm_default_lib(self): def test_gcc_arm_c_lib(self):
"""Test that linker flags are correctly added to an instance of GCC_ARM.""" """Test that linker flags are correctly added to an instance of GCC_ARM."""
mock_target = mock.MagicMock() mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.supported_c_libs = {"gcc_arm": ["small"]} mock_target.supported_c_libs = {"gcc_arm": ["small"]}
mock_target.default_lib = "sMALL" mock_target.c_lib = "sMALL"
del mock_target.default_lib
mock_target.supported_toolchains = ["GCC_ARM"] mock_target.supported_toolchains = ["GCC_ARM"]
mock_target.is_TrustZone_secure_target = False mock_target.is_TrustZone_secure_target = False
gcc_arm_obj = GCC_ARM(mock_target) gcc_arm_obj = GCC_ARM(mock_target)
@ -140,25 +145,27 @@ class TestGccToolchain(TestCase):
self.assertIn("-D__NEWLIB_NANO", gcc_arm_obj.flags["common"]) self.assertIn("-D__NEWLIB_NANO", gcc_arm_obj.flags["common"])
self.assertIn("--specs=nano.specs", gcc_arm_obj.flags["ld"]) self.assertIn("--specs=nano.specs", gcc_arm_obj.flags["ld"])
def test_gcc_arm_default_lib_std_exception(self): def test_gcc_arm_c_lib_std_exception(self):
"""Test that an exception is raised if the std C library is not supported for a target on the GCC_ARM toolchain.""" """Test that an exception is raised if the std C library is not supported for a target on the GCC_ARM toolchain."""
mock_target = mock.MagicMock() mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.default_toolchain = "ARM" mock_target.default_toolchain = "ARM"
mock_target.default_lib = "std" mock_target.c_lib = "std"
del mock_target.default_lib
mock_target.supported_c_libs = {"arm": ["small"]} mock_target.supported_c_libs = {"arm": ["small"]}
with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.default_lib)): with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.c_lib)):
GCC_ARM(mock_target) GCC_ARM(mock_target)
def test_gcc_arm_default_lib_small_exception(self): def test_gcc_arm_c_lib_small_exception(self):
"""Test that an exception is raised if the small C library is not supported for a target on the GCC_ARM toolchain.""" """Test that an exception is raised if the small C library is not supported for a target on the GCC_ARM toolchain."""
mock_target = mock.MagicMock() mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.default_lib = "small" mock_target.c_lib = "small"
del mock_target.default_lib
mock_target.supported_c_libs = {"arm": ["std"]} mock_target.supported_c_libs = {"arm": ["std"]}
mock_target.default_toolchain = "ARM" mock_target.default_toolchain = "ARM"
mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5"] mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5"]
with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.default_lib)): with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.c_lib)):
GCC_ARM(mock_target) GCC_ARM(mock_target)
class TestIarToolchain(TestCase): class TestIarToolchain(TestCase):
@ -170,7 +177,8 @@ class TestIarToolchain(TestCase):
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.printf_lib = "minimal-printf" mock_target.printf_lib = "minimal-printf"
mock_target.supported_toolchains = ["IAR"] mock_target.supported_toolchains = ["IAR"]
mock_target.default_lib = "std" del mock_target.default_lib
mock_target.c_lib = "std"
mock_target.supported_c_libs = {"iar": ["std"]} mock_target.supported_c_libs = {"iar": ["std"]}
mock_target.is_TrustZone_secure_target = False mock_target.is_TrustZone_secure_target = False
@ -178,35 +186,38 @@ class TestIarToolchain(TestCase):
var = "-DMBED_MINIMAL_PRINTF" var = "-DMBED_MINIMAL_PRINTF"
self.assertIn("-DMBED_MINIMAL_PRINTF", iar_obj.flags["common"]) self.assertIn("-DMBED_MINIMAL_PRINTF", iar_obj.flags["common"])
def test_iar_default_lib(self): def test_iar_c_lib(self):
"""Test that no exception is raised when a supported c library is specified.""" """Test that no exception is raised when a supported c library is specified."""
mock_target = mock.MagicMock() mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.supported_c_libs = {"iar": ["std"]} mock_target.supported_c_libs = {"iar": ["std"]}
mock_target.default_lib = "sTD" mock_target.c_lib = "sTD"
del mock_target.default_lib
mock_target.supported_toolchains = ["IAR"] mock_target.supported_toolchains = ["IAR"]
mock_target.is_TrustZone_secure_target = False mock_target.is_TrustZone_secure_target = False
try: try:
IAR(mock_target) IAR(mock_target)
except NotSupportedException: except NotSupportedException:
self.fail(UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.default_lib)) self.fail(UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.c_lib))
def test_iar_default_lib_std_exception(self): def test_iar_c_lib_std_exception(self):
"""Test that an exception is raised if the std C library is not supported for a target on the IAR toolchain.""" """Test that an exception is raised if the std C library is not supported for a target on the IAR toolchain."""
mock_target = mock.MagicMock() mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.default_lib = "std" mock_target.c_lib = "std"
del mock_target.default_lib
mock_target.supported_c_libs = {"iar": ["small"]} mock_target.supported_c_libs = {"iar": ["small"]}
mock_target.supported_toolchains = ["IAR"] mock_target.supported_toolchains = ["IAR"]
with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.default_lib)): with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.c_lib)):
IAR(mock_target) IAR(mock_target)
def test_iar_default_lib_small_exception(self): def test_iar_c_lib_small_exception(self):
"""Test that an exception is raised if the small C library is not supported for a target on the IAR toolchain.""" """Test that an exception is raised if the small C library is not supported for a target on the IAR toolchain."""
mock_target = mock.MagicMock() mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4" mock_target.core = "Cortex-M4"
mock_target.default_lib = "small" mock_target.c_lib = "small"
del mock_target.default_lib
mock_target.supported_c_libs = {"iar": ["std"]} mock_target.supported_c_libs = {"iar": ["std"]}
mock_target.supported_toolchains = ["IAR"] mock_target.supported_toolchains = ["IAR"]
with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.default_lib)): with self.assertRaisesRegexp(NotSupportedException, UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(mock_target.c_lib)):
IAR(mock_target) IAR(mock_target)

View File

@ -81,7 +81,7 @@ class ARM(mbedToolchain):
if ( if (
getattr(target, "default_toolchain", "ARM") == "uARM" getattr(target, "default_toolchain", "ARM") == "uARM"
or getattr(target, "default_lib", "std") == "small" or getattr(target, "c_lib", "std") == "small"
): ):
if "-DMBED_RTOS_SINGLE_THREAD" not in self.flags['common']: if "-DMBED_RTOS_SINGLE_THREAD" not in self.flags['common']:
self.flags['common'].append("-DMBED_RTOS_SINGLE_THREAD") self.flags['common'].append("-DMBED_RTOS_SINGLE_THREAD")
@ -571,7 +571,7 @@ class ARMC6(ARM_STD):
if ( if (
getattr(target, "default_toolchain", "ARMC6") == "uARM" getattr(target, "default_toolchain", "ARMC6") == "uARM"
or getattr(target, "default_lib", "std") == "small" or getattr(target, "c_lib", "std") == "small"
): ):
if "-DMBED_RTOS_SINGLE_THREAD" not in self.flags['common']: if "-DMBED_RTOS_SINGLE_THREAD" not in self.flags['common']:
self.flags['common'].append("-DMBED_RTOS_SINGLE_THREAD") self.flags['common'].append("-DMBED_RTOS_SINGLE_THREAD")

View File

@ -48,14 +48,14 @@ class GCC(mbedToolchain):
tool_path = TOOLCHAIN_PATHS['GCC_ARM'] tool_path = TOOLCHAIN_PATHS['GCC_ARM']
# Add flags for current size setting # Add flags for current size setting
default_lib = "std" c_lib = "std"
if hasattr(target, "default_lib"): if hasattr(target, "c_lib"):
self.check_c_lib_supported(target, "gcc_arm") self.check_c_lib_supported(target, "gcc_arm")
default_lib = target.default_lib c_lib = target.c_lib
elif hasattr(target, "default_build"): elif hasattr(target, "default_build"):
default_lib = target.default_build c_lib = target.default_build
if default_lib == "small": if c_lib == "small":
common_flags = ["-DMBED_RTOS_SINGLE_THREAD", "-D__NEWLIB_NANO"] common_flags = ["-DMBED_RTOS_SINGLE_THREAD", "-D__NEWLIB_NANO"]
self.flags["common"].extend(common_flags) self.flags["common"].extend(common_flags)
self.flags["ld"].append("--specs=nano.specs") self.flags["ld"].append("--specs=nano.specs")

View File

@ -1103,18 +1103,22 @@ class mbedToolchain(with_metaclass(ABCMeta, object)):
""" """
Check and raise an exception if the requested C library is not supported, Check and raise an exception if the requested C library is not supported,
target.default_lib is modified to have the lowercased string of its original string. target.c_lib is modified to have the lowercased string of its original string.
This is done to be case insensitive when validating. This is done to be case insensitive when validating.
""" """
if hasattr(target, "default_lib"): if hasattr(target, "default_lib"):
target.default_lib = target.default_lib.lower() raise NotSupportedException(
"target.default_lib is no longer supported, please use target.c_lib for C library selection."
)
if hasattr(target, "c_lib"):
target.c_lib = target.c_lib.lower()
if ( if (
hasattr(target, "supported_c_libs") == False hasattr(target, "supported_c_libs") == False
or toolchain not in target.supported_c_libs or toolchain not in target.supported_c_libs
or target.default_lib not in target.supported_c_libs[toolchain] or target.c_lib not in target.supported_c_libs[toolchain]
): ):
raise NotSupportedException( raise NotSupportedException(
UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(target.default_lib) UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(target.c_lib)
) )
@staticmethod @staticmethod