This is an automated email from the ASF dual-hosted git repository. marko pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-newt.git
The following commit(s) were added to refs/heads/master by this push: new 064a5ca newt; fix flag use when building dependencies. Specifically, need the missing asflags when using clang to build sim. new cf1e699 Merge pull request #421 from mkiiskila/fix_dep_flags 064a5ca is described below commit 064a5ca1a950d4cef1430cc60166548f59317343 Author: Marko Kiiskila <ma...@apache.org> AuthorDate: Mon Nov 23 15:41:49 2020 +0200 newt; fix flag use when building dependencies. Specifically, need the missing asflags when using clang to build sim. --- newt/toolchain/compiler.go | 28 ++++++++++++++++++++++++---- newt/toolchain/deps.go | 6 +++--- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/newt/toolchain/compiler.go b/newt/toolchain/compiler.go index cf0531a..ad264ac 100644 --- a/newt/toolchain/compiler.go +++ b/newt/toolchain/compiler.go @@ -487,19 +487,39 @@ func (c *Compiler) CompileFileCmd(file string, compilerType int) ( return cmd, nil } -// Generates a dependency Makefile (.d) for the specified source C file. +// Generates a dependency Makefile (.d) for the specified source file. // // @param file The name of the source file. -func (c *Compiler) GenDepsForFile(file string) error { +func (c *Compiler) GenDepsForFile(file string, compilerType int) error { depPath := c.dstFilePath(file) + ".d" depDir := filepath.Dir(depPath) if util.NodeNotExist(depDir) { os.MkdirAll(depDir, 0755) } + var cmdName string + var flags []string + switch compilerType { + case COMPILER_TYPE_C: + cmdName = c.ccPath + flags = c.cflagsStrings() + case COMPILER_TYPE_ASM: + cmdName = c.asPath + + // Include both the compiler flags and the assembler flags. + // XXX: This is not great. We don't have a way of specifying compiler + // flags without also passing them to the assembler. + flags = append(c.cflagsStrings(), c.aflagsStrings()...) + case COMPILER_TYPE_CPP: + cmdName = c.cppPath + flags = append(c.cflagsStrings(), c.cxxflagsStrings()...) + default: + return util.NewNewtError("Unknown compiler type") + } + srcPath := strings.TrimPrefix(file, c.baseDir+"/") - cmd := []string{c.ccPath} - cmd = append(cmd, c.cflagsStrings()...) + cmd := []string{cmdName} + cmd = append(cmd, flags...) cmd = append(cmd, c.includesStrings()...) cmd = append(cmd, []string{"-MM", "-MG", srcPath}...) diff --git a/newt/toolchain/deps.go b/newt/toolchain/deps.go index 48b5462..ee6bc62 100644 --- a/newt/toolchain/deps.go +++ b/newt/toolchain/deps.go @@ -206,7 +206,7 @@ func (tracker *DepTracker) CompileRequired(srcFile string, if commandHasChanged(objPath, cmd) { logRebuildReqdCmdChanged(srcFile) - err := tracker.compiler.GenDepsForFile(srcFile) + err := tracker.compiler.GenDepsForFile(srcFile, compilerType) if err != nil { return false, err } @@ -214,7 +214,7 @@ func (tracker *DepTracker) CompileRequired(srcFile string, } if util.NodeNotExist(depPath) { - err := tracker.compiler.GenDepsForFile(srcFile) + err := tracker.compiler.GenDepsForFile(srcFile, compilerType) if err != nil { return false, err } @@ -246,7 +246,7 @@ func (tracker *DepTracker) CompileRequired(srcFile string, } if srcModTime.After(depModTime) { - err := tracker.compiler.GenDepsForFile(srcFile) + err := tracker.compiler.GenDepsForFile(srcFile, compilerType) if err != nil { return false, err }