Workaround for ARMC6 Windows 7 assembler issue

On Windows 7 using --preproc option in ARMC6 assembler doesn't work
when -MD option is also specified. Compiler creates incorrect filename for
dependency file and compilation files.
To workaround this issue, this change returns to using a temporary file and
separately calling preprocessor and assembler (as in a case of ARMC5).
pull/10182/head
Leszek Rusinowicz 2019-03-21 11:20:02 +01:00
parent 014a5ec487
commit 8d8cf1acc3
1 changed files with 14 additions and 4 deletions

View File

@ -583,11 +583,21 @@ class ARMC6(ARM_STD):
return opts
def assemble(self, source, object, includes):
cmd_pre = copy(self.asm)
# Preprocess first, then assemble
root, _ = splitext(object)
tempfile = root + '.E'
# Build preprocess assemble command
cmd_pre = copy(self.cc)
cmd_pre.extend(self.get_compile_options(
self.get_symbols(True), includes, for_asm=True))
cmd_pre.extend(["-o", object, source])
return [cmd_pre]
self.get_symbols(True), includes, for_asm=False))
cmd_pre.extend(["-E", "-MT", object, "-o", tempfile, source])
# Build main assemble command
cmd = self.asm + ["-o", object, tempfile]
# Return command array, don't execute
return [cmd_pre, cmd]
def compile(self, cc, source, object, includes):
cmd = copy(cc)