Skip to content

Conversation

@jwnrt
Copy link
Contributor

@jwnrt jwnrt commented Jul 17, 2025

  • Removes 32-bit host configurations
  • Removes GCC from toolchain
  • Builds Binutils directly without crosstool-ng
  • Removes meson support configurations
  • Adds option for changing the build type for Clang (e.g. Debug or Release)

@jwnrt jwnrt force-pushed the tidy-build-process branch 9 times, most recently from 497c115 to 864df9b Compare July 21, 2025 14:19
@jwnrt jwnrt changed the title Clean up toolchain build process Rework toolchain building flow Jul 21, 2025
@jwnrt jwnrt force-pushed the tidy-build-process branch 17 times, most recently from f92d559 to c7148cb Compare July 22, 2025 10:08
@jwnrt jwnrt marked this pull request as ready for review July 22, 2025 11:53
@jwnrt jwnrt requested a review from luismarques July 22, 2025 11:53
Copy link
Collaborator

@luismarques luismarques left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build-clang-with-args.sh usage string is missing the corresponding update?

@jwnrt jwnrt force-pushed the tidy-build-process branch 5 times, most recently from 7d17be6 to d4f7ea1 Compare August 15, 2025 11:31
@jwnrt
Copy link
Contributor Author

jwnrt commented Aug 15, 2025

@jwnrt jwnrt requested a review from luismarques August 15, 2025 15:51
@jwnrt jwnrt marked this pull request as draft September 1, 2025 09:30
jwnrt added 12 commits September 1, 2025 10:34
We were no longer building this.
The output directory is reused in CI so that the Clang tarball includes
the GCC and Binutils parts of the toolchain. It doesn't make sense to me
to prepare the tarballs inside the build scripts when they bleed into
each other.

This commit changes CI to prepare a single tarball including GCC, Clang,
and Binutils.
@jwnrt jwnrt force-pushed the tidy-build-process branch from d4f7ea1 to 4076dd0 Compare September 1, 2025 09:38
@luismarques
Copy link
Collaborator

./contrib/build-opentitan-dist.sh is useful but it's not ideal for iterative toolchain development/testing. In general, we want something where we can rebuild the toolchain with small changes (e.g. add a printf) and immediately try it in OpenTitan (with the Bazel override). That script provides a good starting point for non-CI builds but it rebuilds more than necessary. It also takes a while to build debug builds because it doesn't use the host LLD to link LLVM (-DLLVM_ENABLE_LLD=True) nor allows enabling other options for iterative development (-DBUILD_SHARED_LIBS=True -DLLVM_USE_SPLIT_DWARF=True). I'd like to see options/alternatives for debug builds (./build-clang-with-args.sh --debug), using Ninja, using the host LLD, avoiding rebuilding binutils, etc. It probably also doesn't need to be inside contrib.

@jwnrt jwnrt force-pushed the tidy-build-process branch from 4076dd0 to aa7bb80 Compare September 30, 2025 13:21
@jwnrt jwnrt marked this pull request as ready for review October 6, 2025 14:06
@luismarques luismarques merged commit 7471191 into lowRISC:master Oct 6, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants