Skip to content

Commit

Permalink
Removed automatic '--relax' hack for compiles on Atmega2560 MCU (#749)
Browse files Browse the repository at this point in the history
This removes the --relax option, potentially producing slightly bigger code for the atmega2560. On the longer term, the AVR core should just add this option for all boards, but this is not currently the case yet because removing --relax also works around a gcc miscompilation (see arduino/ArduinoCore-avr#339).

Close: #639
  • Loading branch information
cmaglie committed Jun 12, 2020
1 parent c9868a0 commit f7a6d63
Showing 1 changed file with 1 addition and 10 deletions.
11 changes: 1 addition & 10 deletions legacy/builder/phases/linker.go
Expand Up @@ -57,13 +57,11 @@ func (s *Linker) Run(ctx *types.Context) error {
}

func link(ctx *types.Context, objectFiles paths.PathList, coreDotARelPath *paths.Path, coreArchiveFilePath *paths.Path, buildProperties *properties.Map) error {
optRelax := addRelaxTrickIfATMEGA2560(buildProperties)

quotedObjectFiles := utils.Map(objectFiles.AsStrings(), wrapWithDoubleQuotes)
objectFileList := strings.Join(quotedObjectFiles, constants.SPACE)

properties := buildProperties.Clone()
properties.Set(constants.BUILD_PROPERTIES_COMPILER_C_ELF_FLAGS, properties.Get(constants.BUILD_PROPERTIES_COMPILER_C_ELF_FLAGS)+optRelax)
properties.Set(constants.BUILD_PROPERTIES_COMPILER_C_ELF_FLAGS, properties.Get(constants.BUILD_PROPERTIES_COMPILER_C_ELF_FLAGS))
properties.Set(constants.BUILD_PROPERTIES_COMPILER_WARNING_FLAGS, properties.Get(constants.BUILD_PROPERTIES_COMPILER_WARNING_FLAGS+"."+ctx.WarningsLevel))
properties.Set(constants.BUILD_PROPERTIES_ARCHIVE_FILE, coreDotARelPath.String())
properties.Set(constants.BUILD_PROPERTIES_ARCHIVE_FILE_PATH, coreArchiveFilePath.String())
Expand All @@ -76,10 +74,3 @@ func link(ctx *types.Context, objectFiles paths.PathList, coreDotARelPath *paths
func wrapWithDoubleQuotes(value string) string {
return "\"" + value + "\""
}

func addRelaxTrickIfATMEGA2560(buildProperties *properties.Map) string {
if buildProperties.Get(constants.BUILD_PROPERTIES_BUILD_MCU) == "atmega2560" {
return ",--relax"
}
return constants.EMPTY_STRING
}

0 comments on commit f7a6d63

Please sign in to comment.