mirror of https://github.com/ARMmbed/mbed-os.git
Fixed toolchain flags so exporters can use them
parent
75a18ff1a3
commit
51c10165ca
|
@ -21,6 +21,7 @@ from tools.toolchains import mbedToolchain
|
|||
from tools.settings import ARM_BIN, ARM_INC, ARM_LIB, MY_ARM_CLIB, ARM_CPPLIB, GOANNA_PATH
|
||||
from tools.hooks import hook_tool
|
||||
from tools.utils import mkdir
|
||||
import copy
|
||||
|
||||
class ARM(mbedToolchain):
|
||||
LINKER_EXT = '.sct'
|
||||
|
@ -30,6 +31,17 @@ class ARM(mbedToolchain):
|
|||
DIAGNOSTIC_PATTERN = re.compile('"(?P<file>[^"]+)", line (?P<line>\d+)( \(column (?P<column>\d+)\)|): (?P<severity>Warning|Error): (?P<message>.+)')
|
||||
DEP_PATTERN = re.compile('\S+:\s(?P<file>.+)\n')
|
||||
|
||||
|
||||
DEFAULT_FLAGS = {
|
||||
'common': ["-c", "--gnu",
|
||||
"-Otime", "--split_sections", "--apcs=interwork",
|
||||
"--brief_diagnostics", "--restrict", "--multibyte_chars", "-I", "\""+ARM_INC+"\""],
|
||||
'asm': [],
|
||||
'c': ["--md", "--no_depend_system_headers", "--c99", "-D__ASSERT_MSG"],
|
||||
'cxx': ["--cpp", "--no_rtti"],
|
||||
'ld': [],
|
||||
}
|
||||
|
||||
def __init__(self, target, options=None, notify=None, macros=None, silent=False, extra_verbose=False):
|
||||
mbedToolchain.__init__(self, target, options, notify, macros, silent, extra_verbose=extra_verbose)
|
||||
|
||||
|
@ -43,34 +55,25 @@ class ARM(mbedToolchain):
|
|||
cpu = target.core
|
||||
|
||||
main_cc = join(ARM_BIN, "armcc")
|
||||
common = ["-c",
|
||||
"--cpu=%s" % cpu, "--gnu",
|
||||
"-Otime", "--split_sections", "--apcs=interwork",
|
||||
"--brief_diagnostics", "--restrict", "--multibyte_chars"
|
||||
]
|
||||
|
||||
self.flags = copy.deepcopy(self.DEFAULT_FLAGS)
|
||||
self.flags['common'] += ["--cpu=%s" % cpu]
|
||||
if "save-asm" in self.options:
|
||||
common.extend(["--asm", "--interleave"])
|
||||
self.flags['common'].extend(["--asm", "--interleave"])
|
||||
|
||||
if "debug-info" in self.options:
|
||||
common.append("-O0")
|
||||
self.flags['common'].append("-g")
|
||||
self.flags['c'].append("-O0")
|
||||
else:
|
||||
common.append("-O3")
|
||||
# add debug symbols for all builds
|
||||
common.append("-g")
|
||||
self.flags['c'].append("-O3")
|
||||
|
||||
common_c = [
|
||||
"--md", "--no_depend_system_headers",
|
||||
'-I%s' % ARM_INC
|
||||
]
|
||||
|
||||
self.asm = [main_cc] + common + ['-I%s' % ARM_INC]
|
||||
self.asm = [main_cc] + self.flags['common'] + self.flags['asm']
|
||||
if not "analyze" in self.options:
|
||||
self.cc = [main_cc] + common + common_c + ["--c99"]
|
||||
self.cppc = [main_cc] + common + common_c + ["--cpp", "--no_rtti"]
|
||||
self.cc = [main_cc] + self.flags['common'] + self.flags['c']
|
||||
self.cppc = [main_cc] + self.flags['common'] + self.flags['c'] + self.flags['cxx']
|
||||
else:
|
||||
self.cc = [join(GOANNA_PATH, "goannacc"), "--with-cc=" + main_cc.replace('\\', '/'), "--dialect=armcc", '--output-format="%s"' % self.GOANNA_FORMAT] + common + common_c + ["--c99"]
|
||||
self.cppc= [join(GOANNA_PATH, "goannac++"), "--with-cxx=" + main_cc.replace('\\', '/'), "--dialect=armcc", '--output-format="%s"' % self.GOANNA_FORMAT] + common + common_c + ["--cpp", "--no_rtti"]
|
||||
self.cc = [join(GOANNA_PATH, "goannacc"), "--with-cc=" + main_cc.replace('\\', '/'), "--dialect=armcc", '--output-format="%s"' % self.GOANNA_FORMAT] + self.flags['common'] + self.flags['c']
|
||||
self.cppc= [join(GOANNA_PATH, "goannac++"), "--with-cxx=" + main_cc.replace('\\', '/'), "--dialect=armcc", '--output-format="%s"' % self.GOANNA_FORMAT] + self.flags['common'] + self.flags['c'] + self.flags['cxx']
|
||||
|
||||
self.ld = [join(ARM_BIN, "armlink")]
|
||||
self.sys_libs = []
|
||||
|
@ -214,8 +217,11 @@ class ARM(mbedToolchain):
|
|||
class ARM_STD(ARM):
|
||||
def __init__(self, target, options=None, notify=None, macros=None, silent=False, extra_verbose=False):
|
||||
ARM.__init__(self, target, options, notify, macros, silent, extra_verbose=extra_verbose)
|
||||
self.cc += ["-D__ASSERT_MSG"]
|
||||
self.cppc += ["-D__ASSERT_MSG"]
|
||||
|
||||
# Extend flags
|
||||
self.flags['ld'].extend(["--libpath", ARM_LIB])
|
||||
|
||||
# Run-time values
|
||||
self.ld.extend(["--libpath", ARM_LIB])
|
||||
|
||||
|
||||
|
@ -225,18 +231,24 @@ class ARM_MICRO(ARM):
|
|||
def __init__(self, target, options=None, notify=None, macros=None, silent=False, extra_verbose=False):
|
||||
ARM.__init__(self, target, options, notify, macros, silent, extra_verbose=extra_verbose)
|
||||
|
||||
# Compiler
|
||||
self.asm += ["-D__MICROLIB"]
|
||||
self.cc += ["--library_type=microlib", "-D__MICROLIB", "-D__ASSERT_MSG"]
|
||||
self.cppc += ["--library_type=microlib", "-D__MICROLIB", "-D__ASSERT_MSG"]
|
||||
# Extend flags
|
||||
self.flags['common'].extend(["-D__MICROLIB"])
|
||||
self.flags['c'].extend(["--library_type=microlib"])
|
||||
self.flags['ld'].extend(["--library_type=microlib"])
|
||||
|
||||
# Linker
|
||||
self.ld.append("--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"]
|
||||
|
||||
# We had to patch microlib to add C++ support
|
||||
# In later releases this patch should have entered mainline
|
||||
if ARM_MICRO.PATCHED_LIBRARY:
|
||||
self.ld.append("--noscanlib")
|
||||
# Run-time values
|
||||
self.flags['ld'].extend(["--noscanlib"])
|
||||
# Run-time values
|
||||
self.ld += ["--noscanlib"]
|
||||
|
||||
# System Libraries
|
||||
self.sys_libs.extend([join(MY_ARM_CLIB, lib+".l") for lib in ["mc_p", "mf_p", "m_ps"]])
|
||||
|
@ -247,4 +259,7 @@ class ARM_MICRO(ARM):
|
|||
elif target.core in ["Cortex-M0", "Cortex-M0+"]:
|
||||
self.sys_libs.extend([join(ARM_CPPLIB, lib+".l") for lib in ["cpp_ps", "cpprt_p"]])
|
||||
else:
|
||||
# Run-time values
|
||||
self.flags['ld'].extend(["--libpath", ARM_LIB])
|
||||
# Run-time values
|
||||
self.ld.extend(["--libpath", ARM_LIB])
|
||||
|
|
|
@ -74,11 +74,10 @@ class GCC(mbedToolchain):
|
|||
common_flags.append("-save-temps")
|
||||
|
||||
if "debug-info" in self.options:
|
||||
common_flags.append("-g")
|
||||
common_flags.append("-O0")
|
||||
else:
|
||||
common_flags.append("-O2")
|
||||
# add debug symbols for all builds
|
||||
common_flags.append("-g")
|
||||
|
||||
main_cc = join(tool_path, "arm-none-eabi-gcc")
|
||||
main_cppc = join(tool_path, "arm-none-eabi-g++")
|
||||
|
|
|
@ -53,11 +53,10 @@ class IAR(mbedToolchain):
|
|||
|
||||
|
||||
if "debug-info" in self.options:
|
||||
c_flags.append("-r")
|
||||
c_flags.append("-On")
|
||||
else:
|
||||
c_flags.append("-Oh")
|
||||
# add debug symbols for all builds
|
||||
c_flags.append("-r")
|
||||
|
||||
IAR_BIN = join(IAR_PATH, "bin")
|
||||
main_cc = join(IAR_BIN, "iccarm")
|
||||
|
|
Loading…
Reference in New Issue