diff --git a/builder/frameworks/_bare.py b/builder/frameworks/_bare.py index 740799f..d879c0a 100644 --- a/builder/frameworks/_bare.py +++ b/builder/frameworks/_bare.py @@ -11,6 +11,16 @@ machine_arch = str(board.get("build.march")) +def get_flag_value(flag_name:str, default_val:bool): + flag_val = board.get("build.%s" % flag_name, default_val) + flag_val = str(flag_val).lower() in ("1", "yes", "true") + return flag_val + +lto_flag = "" +if get_flag_value("use_lto", False): + lto_flag = "-flto" + env.Append(LINKFLAGS=["-flto"], CCFLAGS=["-flto"]) + env.Append( ASFLAGS=[ "-march=%s" % machine_arch, @@ -48,6 +58,7 @@ "-Wunused", "-Wuninitialized", "-Wno-comment", + lto_flag, "-march=%s" % machine_arch, "-mabi=%s" % board.get("build.mabi"), ], @@ -68,8 +79,10 @@ "-nostartfiles", '-Wl,-Map="%s"' % os.path.join( "$BUILD_DIR", os.path.basename(env.subst("${PROJECT_DIR}.map"))), + lto_flag, ] ) # copy general C/C++ flags to assembler with cpp flags too, except # would-be-duplicate last two elements -env["ASPPFLAGS"].extend(env["CCFLAGS"][:-2]) \ No newline at end of file +env["ASPPFLAGS"].extend(env["CCFLAGS"][:-2]) + diff --git a/builder/frameworks/noneos_sdk.py b/builder/frameworks/noneos_sdk.py index b9eb502..c993425 100644 --- a/builder/frameworks/noneos_sdk.py +++ b/builder/frameworks/noneos_sdk.py @@ -93,9 +93,6 @@ def get_startup_filename(board): env.Exit(-1) return startup_file -if get_flag_value("use_lto", False): - env.Append(LINKFLAGS=["-flto"], CCFLAGS=["-flto"]) - env.Append( CPPPATH=[ join(FRAMEWORK_DIR, "Core", chip_series),