forked from platformio/platformio-core
Enable linker "cyclic dependencies" for all platforms
This commit is contained in:
@ -55,8 +55,7 @@ env.Replace(
|
|||||||
LINKFLAGS=[
|
LINKFLAGS=[
|
||||||
"-Os",
|
"-Os",
|
||||||
"-mmcu=$BOARD_MCU",
|
"-mmcu=$BOARD_MCU",
|
||||||
"-Wl,--gc-sections",
|
"-Wl,--gc-sections"
|
||||||
"-Wl,--start-group"
|
|
||||||
],
|
],
|
||||||
|
|
||||||
SIZEPRINTCMD='"$SIZETOOL" --mcu=$BOARD_MCU -C -d $SOURCES',
|
SIZEPRINTCMD='"$SIZETOOL" --mcu=$BOARD_MCU -C -d $SOURCES',
|
||||||
|
@ -43,21 +43,29 @@ def ProcessGeneral(env):
|
|||||||
|
|
||||||
|
|
||||||
def BuildFirmware(env, corelibs):
|
def BuildFirmware(env, corelibs):
|
||||||
src = env.Clone()
|
firmenv = env.Clone()
|
||||||
vdirs = src.VariantDirRecursive(
|
vdirs = firmenv.VariantDirRecursive(
|
||||||
join("$BUILD_DIR", "src"), join("$PROJECT_DIR", "src"))
|
join("$BUILD_DIR", "src"), join("$PROJECT_DIR", "src"))
|
||||||
|
|
||||||
# build dependent libs
|
# 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"),
|
join("$BUILD_DIR", "firmware"),
|
||||||
[src.GlobCXXFiles(vdir) for vdir in vdirs],
|
[firmenv.GlobCXXFiles(vdir) for vdir in vdirs],
|
||||||
LIBS=deplibs + corelibs,
|
LIBS=deplibs + corelibs,
|
||||||
LIBPATH="$BUILD_DIR",
|
LIBPATH="$BUILD_DIR",
|
||||||
PROGSUFFIX=".elf")
|
PROGSUFFIX=".elf"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def GlobCXXFiles(env, path):
|
def GlobCXXFiles(env, path):
|
||||||
|
Reference in New Issue
Block a user