Skip to content

Conversation

@lukebakken
Copy link
Collaborator

Building from source using this command:

make RMQ_ERLC_OPTS= FULL=1

... then starting RabbitMQ via make run-broker, allows re-compilation from the erl shell:

1> c(rabbit).
Recompiling /home/lbakken/development/rabbitmq/rabbitmq-server/deps/rabbit/src/rabbit.erl
{ok,rabbit}

When +deterministic is passed to erlc, the compile data in each modules' information is missing the source path for the module.

Follow-up to #3442

Building from source using this command:

```
make RMQ_ERLC_OPTS= FULL=1
```

... then starting RabbitMQ via `make run-broker`, allows re-compilation
from the erl shell:

```
1> c(rabbit).
Recompiling /home/lbakken/development/rabbitmq/rabbitmq-server/deps/rabbit/src/rabbit.erl
{ok,rabbit}
```

When `+deterministic` is passed to `erlc`, the `compile` data in each
modules' information is missing the source path for the module.

Follow-up to #3442
@mergify mergify bot added the make label May 16, 2025
@lukebakken
Copy link
Collaborator Author

Of course, #3442 could just be reverted.

Copy link
Collaborator

@michaelklishin michaelklishin left a comment

Choose a reason for hiding this comment

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

No objections to simply merging this PR instead of reverting. We keep more context in git history that way IMO.

@michaelklishin
Copy link
Collaborator

michaelklishin commented May 17, 2025

The Selenium suite fails due to limited secret access, please disregard.

@michaelklishin michaelklishin merged commit abe306e into rabbitmq:main May 17, 2025
270 of 273 checks passed
michaelklishin added a commit that referenced this pull request May 17, 2025
lukebakken added a commit to lukebakken/rmq-rabbitmq-server that referenced this pull request Sep 18, 2025
Follow-up to:
* rabbitmq#3442
* 93db480
* rabbitmq#13899
* rabbitmq#14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `RMQ_NON_DETERMINISTIC_BUILD` which will be used like this:

```
make RMQ_NON_DETERMINISTIC_BUILD=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.
lukebakken added a commit to lukebakken/rmq-rabbitmq-server that referenced this pull request Sep 19, 2025
Follow-up to:
* rabbitmq#3442
* 93db480
* rabbitmq#13899
* rabbitmq#14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `RMQ_NON_DETERMINISTIC_BUILD` which will be used like this:

```
make RMQ_NON_DETERMINISTIC_BUILD=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.
lukebakken added a commit to lukebakken/rmq-rabbitmq-server that referenced this pull request Sep 19, 2025
Follow-up to:
* rabbitmq#3442
* 93db480
* rabbitmq#13899
* rabbitmq#14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `RMQ_NON_DETERMINISTIC_BUILD` which will be used like this:

```
make RMQ_NON_DETERMINISTIC_BUILD=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.
lukebakken added a commit to lukebakken/rmq-rabbitmq-server that referenced this pull request Sep 22, 2025
Follow-up to:
* rabbitmq#3442
* 93db480
* rabbitmq#13899
* rabbitmq#14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `RMQ_NON_DETERMINISTIC_BUILD` which will be used like this:

```
make RMQ_NON_DETERMINISTIC_BUILD=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.
lukebakken added a commit to lukebakken/rmq-rabbitmq-server that referenced this pull request Sep 22, 2025
Follow-up to:
* rabbitmq#3442
* 93db480
* rabbitmq#13899
* rabbitmq#14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `RMQ_NON_DETERMINISTIC_BUILD` which will be used like this:

```
make RMQ_NON_DETERMINISTIC_BUILD=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.
lukebakken added a commit to lukebakken/rmq-rabbitmq-server that referenced this pull request Sep 24, 2025
Follow-up to:
* rabbitmq#3442
* 93db480
* rabbitmq#13899
* rabbitmq#14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `RMQ_NON_DETERMINISTIC_BUILD` which will be used like this:

```
make RMQ_NON_DETERMINISTIC_BUILD=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.
lukebakken added a commit to lukebakken/rmq-rabbitmq-server that referenced this pull request Sep 24, 2025
Follow-up to:
* rabbitmq#3442
* 93db480
* rabbitmq#13899
* rabbitmq#14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `RMQ_NON_DETERMINISTIC_BUILD` which will be used like this:

```
make RMQ_NON_DETERMINISTIC_BUILD=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.
lukebakken added a commit to lukebakken/rmq-rabbitmq-server that referenced this pull request Sep 25, 2025
Follow-up to:
* rabbitmq#3442
* 93db480
* rabbitmq#13899
* rabbitmq#14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `NON_DETERMINISTIC` which will be used like this:

```
make NON_DETERMINISTIC=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.
lukebakken added a commit that referenced this pull request Sep 25, 2025
Follow-up to:
* #3442
* 93db480
* #13899
* #14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `NON_DETERMINISTIC` which will be used like this:

```
make NON_DETERMINISTIC=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.
mergify bot pushed a commit that referenced this pull request Sep 26, 2025
Follow-up to:
* #3442
* 93db480
* #13899
* #14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `NON_DETERMINISTIC` which will be used like this:

```
make NON_DETERMINISTIC=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.

(cherry picked from commit 2eb8ce5)
michaelklishin pushed a commit that referenced this pull request Sep 26, 2025
Follow-up to:
* #3442
* 93db480
* #13899
* #14326

Simply changing `+=` to `?=` doesn't work as there are other important
statements added to `RMQ_ERLC_OPTS` that can't be left out when `make
RMQ_ERLC_OPTS=''` is run. This only became apparent when a completely
cleaned-out checkout of `rabbitmq/rabbitmq-server` was attempted to be
built with that command.

This adds `NON_DETERMINISTIC` which will be used like this:

```
make NON_DETERMINISTIC=true
```

...and `+deterministic` won't be passed to `erlc` or other commands.
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.

2 participants