Allow customizing progress report config arguments (#55)

* Update dtk, objdiff, sjiswrap, and wibo

* Allow customizing progress report config arguments

* Enable function reloc diffing in default configure.py

* Update comment & disable data_value config by default

---------

Co-authored-by: Luke Street <luke@street.dev>
This commit is contained in:
LagoLunatic
2025-05-18 01:00:08 -04:00
committed by GitHub
parent 7aeeeb5317
commit 1abea6952b
2 changed files with 15 additions and 5 deletions

View File

@@ -144,10 +144,10 @@ if not config.non_matching:
# Tool versions # Tool versions
config.binutils_tag = "2.42-1" config.binutils_tag = "2.42-1"
config.compilers_tag = "20240706" config.compilers_tag = "20240706"
config.dtk_tag = "v1.4.1" config.dtk_tag = "v1.5.1"
config.objdiff_tag = "v2.7.1" config.objdiff_tag = "v3.0.0-beta.8"
config.sjiswrap_tag = "v1.2.0" config.sjiswrap_tag = "v1.2.1"
config.wibo_tag = "0.6.11" config.wibo_tag = "0.6.16"
# Project # Project
config.config_path = Path("config") / config.version / "config.yml" config.config_path = Path("config") / config.version / "config.yml"
@@ -301,6 +301,12 @@ config.progress_categories = [
ProgressCategory("sdk", "SDK Code"), ProgressCategory("sdk", "SDK Code"),
] ]
config.progress_each_module = args.verbose config.progress_each_module = args.verbose
# Optional extra arguments to `objdiff-cli report generate`
config.progress_report_args = [
# Marks relocations as mismatching if the target value is different
# Default is "functionRelocDiffs=none", which is most lenient
# "--config functionRelocDiffs=data_value",
]
if args.mode == "configure": if args.mode == "configure":
# Write build.ninja and objdiff.json # Write build.ninja and objdiff.json

View File

@@ -206,6 +206,9 @@ class ProjectConfig:
self.print_progress_categories: Union[bool, List[str]] = ( self.print_progress_categories: Union[bool, List[str]] = (
True # Print additional progress categories in the CLI progress output True # Print additional progress categories in the CLI progress output
) )
self.progress_report_args: Optional[List[str]] = (
None # Flags to `objdiff-cli report generate`
)
# Progress fancy printing # Progress fancy printing
self.progress_use_fancy: bool = False self.progress_use_fancy: bool = False
@@ -422,6 +425,7 @@ def generate_build_ninja(
if config.linker_version is None: if config.linker_version is None:
sys.exit("ProjectConfig.linker_version missing") sys.exit("ProjectConfig.linker_version missing")
n.variable("mw_version", Path(config.linker_version)) n.variable("mw_version", Path(config.linker_version))
n.variable("objdiff_report_args", make_flags_str(config.progress_report_args))
n.newline() n.newline()
### ###
@@ -1203,7 +1207,7 @@ def generate_build_ninja(
n.comment("Generate progress report") n.comment("Generate progress report")
n.rule( n.rule(
name="report", name="report",
command=f"{objdiff} report generate -o $out", command=f"{objdiff} report generate $objdiff_report_args -o $out",
description="REPORT", description="REPORT",
) )
n.build( n.build(