Enable linker "cyclic dependencies" for all platforms

This commit is contained in:
Ivan Kravets
2015-02-14 22:14:49 +02:00
parent 2bfb1d5569
commit 88f0b51312
2 changed files with 16 additions and 9 deletions

View File

@ -55,8 +55,7 @@ env.Replace(
LINKFLAGS=[
"-Os",
"-mmcu=$BOARD_MCU",
"-Wl,--gc-sections",
"-Wl,--start-group"
"-Wl,--gc-sections"
],
SIZEPRINTCMD='"$SIZETOOL" --mcu=$BOARD_MCU -C -d $SOURCES',

View File

@ -43,21 +43,29 @@ def ProcessGeneral(env):
def BuildFirmware(env, corelibs):
src = env.Clone()
vdirs = src.VariantDirRecursive(
firmenv = env.Clone()
vdirs = firmenv.VariantDirRecursive(
join("$BUILD_DIR", "src"), join("$PROJECT_DIR", "src"))
# build dependent libs
deplibs = src.BuildDependentLibraries(join("$PROJECT_DIR", "src"))
deplibs = firmenv.BuildDependentLibraries(join("$PROJECT_DIR", "src"))
if deplibs:
firmenv.Prepend(
_LIBFLAGS="-Wl,--start-group "
)
firmenv.Append(
_LIBFLAGS=" -Wl,--end-group "
)
src.MergeFlags(getenv("PIOSRCBUILD_FLAGS", "$SRCBUILD_FLAGS"))
firmenv.MergeFlags(getenv("PIOSRCBUILD_FLAGS", "$SRCBUILD_FLAGS"))
return src.Program(
return firmenv.Program(
join("$BUILD_DIR", "firmware"),
[src.GlobCXXFiles(vdir) for vdir in vdirs],
[firmenv.GlobCXXFiles(vdir) for vdir in vdirs],
LIBS=deplibs + corelibs,
LIBPATH="$BUILD_DIR",
PROGSUFFIX=".elf")
PROGSUFFIX=".elf"
)
def GlobCXXFiles(env, path):