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
},
"K64F": {
"target.default_lib": "small"
"target.c_lib": "small"
},
"K66F": {
"target.default_lib": "small"
"target.c_lib": "small"
},
"NUCLEO_F303RE": {
"target.default_lib": "small"
"target.c_lib": "small"
},
"NUCLEO_F411RE": {
"target.default_lib": "small"
"target.c_lib": "small"
},
"NUCLEO_F429ZI": {
"target.default_lib": "small"
"target.c_lib": "small"
},
"DISCO_L475VG_IOT01A": {
"target.default_lib": "small"
"target.c_lib": "small"
}
}
}

View File

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

View File

@ -335,12 +335,12 @@ def is_official_target(target_name, version):
("following toolchains: %s" %
", ".join(sorted(supported_toolchains)))
elif not target.default_lib == 'std':
elif not target.c_lib == 'std':
result = False
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) + \
("Currently it is set to '%s'" % target.default_lib)
("Currently it is set to '%s'" % target.c_lib)
else:
result = False

View File

@ -90,7 +90,7 @@ def check_device_has(dict):
yield "%s is not allowed in device_has" % name
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",
"extra_labels", "features", "features_add",
"features_remove", "bootloader_supported", "device_name",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -31,10 +31,10 @@ class TestArmToolchain(TestCase):
mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4"
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_toolchains = ["ARM", "uARM", "ARMC5"]
del mock_target.default_lib
arm_std_obj = ARM_STD(mock_target)
arm_micro_obj = ARM_MICRO(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_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."""
mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4"
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.supported_toolchains = ["ARM", "uARM", "ARMC5", "ARMC6"]
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("--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."""
mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4"
mock_target.supported_toolchains = ["ARM", "uARM", "ARMC5"]
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"]}
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)
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)
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."""
mock_target = mock.MagicMock()
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.default_toolchain = "ARM"
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)
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)
class TestGccToolchain(TestCase):
@ -105,7 +108,8 @@ class TestGccToolchain(TestCase):
mock_target.core = "Cortex-M4"
mock_target.printf_lib = "minimal-printf"
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.is_TrustZone_secure_target = False
@ -127,12 +131,13 @@ class TestGccToolchain(TestCase):
for i in minimal_printf_wraps:
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."""
mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4"
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.is_TrustZone_secure_target = False
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("--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."""
mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4"
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"]}
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)
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."""
mock_target = mock.MagicMock()
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.default_toolchain = "ARM"
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)
class TestIarToolchain(TestCase):
@ -170,7 +177,8 @@ class TestIarToolchain(TestCase):
mock_target.core = "Cortex-M4"
mock_target.printf_lib = "minimal-printf"
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.is_TrustZone_secure_target = False
@ -178,35 +186,38 @@ class TestIarToolchain(TestCase):
var = "-DMBED_MINIMAL_PRINTF"
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."""
mock_target = mock.MagicMock()
mock_target.core = "Cortex-M4"
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.is_TrustZone_secure_target = False
try:
IAR(mock_target)
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."""
mock_target = mock.MagicMock()
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_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)
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."""
mock_target = mock.MagicMock()
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_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)

View File

@ -81,7 +81,7 @@ class ARM(mbedToolchain):
if (
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']:
self.flags['common'].append("-DMBED_RTOS_SINGLE_THREAD")
@ -571,7 +571,7 @@ class ARMC6(ARM_STD):
if (
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']:
self.flags['common'].append("-DMBED_RTOS_SINGLE_THREAD")

View File

@ -48,14 +48,14 @@ class GCC(mbedToolchain):
tool_path = TOOLCHAIN_PATHS['GCC_ARM']
# Add flags for current size setting
default_lib = "std"
if hasattr(target, "default_lib"):
c_lib = "std"
if hasattr(target, "c_lib"):
self.check_c_lib_supported(target, "gcc_arm")
default_lib = target.default_lib
c_lib = target.c_lib
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"]
self.flags["common"].extend(common_flags)
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,
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.
"""
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 (
hasattr(target, "supported_c_libs") == False
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(
UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(target.default_lib)
UNSUPPORTED_C_LIB_EXCEPTION_STRING.format(target.c_lib)
)
@staticmethod