Skip to content

R64: tell rucc its target and explain the 7.2.8 config differences - #192

Merged
tamnd merged 1 commit into
mainfrom
r64-target
Oct 27, 2026
Merged

tamnd merged 1 commit into
mainfrom
r64-target

Conversation

@tamnd

@tamnd tamnd commented Oct 27, 2026

Copy link
Copy Markdown
Owner

Part of #8. This gets the R64 row building with rucc and makes rk config-diff on 7.2.8 clean.

rucc picks its target from the name it is run as, but the shim runs it by its real path, so on riscv64 it was compiling for the host. On a cross row rk now adds --target=<cross triple> to the persona when the compiler is rucc, the way clang is told. The shim strips it before handing a call to gcc for bring up, and flags.rs and probes.rs drop it when they compare commands and probes, the same as the other persona flags.

The remaining config differences on R64 are now in config-divergences.toml, all coming from the reference being Ubuntu 24.04's gcc 13.3 while the persona is gcc 14.2:

  • CC_HAS_MIN_FUNCTION_ALIGNMENT and CC_HAS_SANE_FUNCTION_ALIGNMENT, since -fmin-function-alignment came in gcc 14
  • GCC_SUPPORTS_DYNAMIC_FTRACE and the ftrace symbols that follow it (HAVE_DYNAMIC_FTRACE*, HAVE_FUNCTION_TRACER, HAVE_FUNCTION_GRAPH_TRACER, FUNCTION_TRACER, STACK_TRACER), which need that flag on riscv64 with compressed instructions
  • TOOLCHAIN_HAS_ZA* and RISCV_ISA_ZABHA, since gcc 13.3 refuses Zacas and Zabha in -march and rucc takes them and assembles the instructions

README, rows.toml and plan 10.4 no longer say R64 is waiting for a back end.

Tested on server3 with rucc at tamnd/rucc 3d3b570 (which has the riscv64 atomics from tamnd/rucc#3923):

  • rk build 7.2.8 --row R64 --fragment test with rucc builds Image
  • rk config-diff gives 18 symbols differ, 18 explained and 0 not
  • rk test --kinds boot,smoke passes 10 of 10 like gcc, and --kinds kunit passes 33 of 33 like gcc, with no splats only in the rucc log
  • cargo test --release passes

@tamnd tamnd added kind/feature New capability in the harness area/rk The rk command line row/r64 riscv64 labels Oct 27, 2026
@tamnd
tamnd merged commit d968400 into main Oct 27, 2026
2 checks passed
@tamnd
tamnd deleted the r64-target branch October 27, 2026 10:44
@tamnd tamnd mentioned this pull request Oct 27, 2026
8 tasks done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/rk The rk command line kind/feature New capability in the harness row/r64 riscv64

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant