Skip to content

(tmp, just to trigger CI)#15332

Draft
dumbbell wants to merge 2 commits into
mainfrom
use-old-compiler-for-khepri
Draft

(tmp, just to trigger CI)#15332
dumbbell wants to merge 2 commits into
mainfrom
use-old-compiler-for-khepri

Conversation

@dumbbell

Copy link
Copy Markdown
Collaborator

No description provided.

@dumbbell dumbbell self-assigned this Jan 22, 2026
@mergify mergify Bot added the make label Jan 22, 2026
@dumbbell dumbbell force-pushed the use-old-compiler-for-khepri branch from 74db949 to 9507c9d Compare January 22, 2026 14:56
[Why]
To be able to support a mix of Erlang/OTP versions in a RabbitMQ
cluster, we need to make sure that a RabbitMQ node running Erlang/OTP
version N generates Khepri transaction and projection functions that can
run on another node running Erlang/OTP N-1 (or older).

[How]
To allow that, we need to provide the assembly from the oldest runtime's
compiler we support to Horus.

To achieve that, the build system now fetches that oldest supported
compiler based on the declared Erlang/OTP version in
`rabbitmq_prelaunch/src/rabbit_prelaunch_erlang_compat.erl`; currently
Erlang/OTP 26.0 as the time of this commit.

This old compiler is used to compile `.erl` source files to `.S`
assembly files. They are written in the `ebin` output directory.

The default compiler is then used to compile the assembly files to the
final `.beam` modules as usual.
@dumbbell dumbbell force-pushed the use-old-compiler-for-khepri branch from 9507c9d to d803436 Compare January 22, 2026 15:24
@dumbbell dumbbell reopened this Mar 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants