Skip to content

Conversation

@th0ma7
Copy link
Contributor

@th0ma7 th0ma7 commented Jan 21, 2026

Description

Toolchain enhancements:

  • Use status cookie to avoid regenerating tc_vars.*mk files
  • Better handle logging messages
  • Properly handle logging in the toolchain/syno-$(TC_NAME|ARCH)-$(TC_VERS) context
  • Have spksrc.cross-cc.mk call toolchain generation instead of clunky spksrc.cross-env.mk
  • Document each toolchain mk files
  • Move all toolchain/syno-* no longer available to toolchain/archive
  • Migrate DSM-6.2.4 to be using our github abandoned source URL
  • Re-organize spksrc.toolchain/tc-version.mk to define per-DSM-version download URL
  • Create a spksrc.toolchain/tc-base.mk and tc-url.mk to separate from compiler specific flags.
  • Re-organize toolchain internal sub-mk files such as:
mk/spksrc.toolchain.mk
mk/spksrc.toolchain
├── tc-base.mk
├── tc-flags.mk
├── tc-normalize.mk
├── tc-rust.mk
├── tc-url.mk
├── tc_vars.mk
└── tc-versions.mk

Fixes

  • Avoid multiple re-iteration of tc_var* toolchain generation
  • Avoid generation of $(WORK_DIR)/tc_var* in dependencies folders
  • Fix lgging at spk level that was missing

Other

  • Enhanced significantly documentation of cross-cc|env.mk
  • Create a $(call LOG_WRAPPED,<recipe>) default logging recipe

Checklist

  • Build rule all-supported completed successfully
  • New installation of package completed successfully
  • Package upgrade completed successfully (Manually install the package again)
  • Package functionality was tested
  • Any needed documentation is updated/created

Type of change

  • Bug fix
  • New Package
  • Package update
  • Includes small framework changes
  • This change requires a documentation update (e.g. Wiki)

@th0ma7
Copy link
Contributor Author

th0ma7 commented Jan 26, 2026

@mreid-tt can you please test this PR? This is a major refactoring of the toolchain phase now using a two stage approach:
1- stage1 (bootstrap), install the toolchain and generate $(WORK_DIR)/tc_vars* configuration files (now only once)
2- stage2, cross-compile

This also now uses a generic LOG_WRAPPED macro so logging is uniquely managed throughout the build.

Really what's needed is testing builds and confirming all is still working as expected.

On my personnal TODO list: test kernel modules, certainly requires a small tweak.

EDIT: Tested against kernel packages and all is still running smoothly, no issue found.

@th0ma7 th0ma7 marked this pull request as ready for review January 26, 2026 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant