Skip to content

Fix removing -O3 on ruby-dev and Ruby < 3.2 on Fedora 42+ - #2638

Merged
mislav merged 4 commits into
rbenv:masterfrom
eregon:opt-flags-fixes
Sep 2, 2026
Merged

Fix removing -O3 on ruby-dev and Ruby < 3.2 on Fedora 42+#2638
mislav merged 4 commits into
rbenv:masterfrom
eregon:opt-flags-fixes

Conversation

@eregon

@eregon eregon commented Aug 31, 2026

Copy link
Copy Markdown
Member

Fixes #2637

eregon and others added 4 commits August 31, 2026 16:29
Exporting CFLAGS overrides Ruby's default optflags/debugflags/warnflags,
notably losing -O3 and silently producing a much slower (-O0) Ruby.
The cflags configure variable is appended to those defaults instead.
Keep prepending to CFLAGS when the user already overrides CFLAGS,
since configure ignores cflags when CFLAGS is given.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
"Additional" was misleading: passing CFLAGS to Ruby's configure replaces
the default optflags/debugflags/warnflags, so e.g. RUBY_CFLAGS=-march=native
silently builds an unoptimized (-O0) Ruby. Document the overriding
semantics and point to RUBY_CONFIGURE_OPTS=cflags=... for adding flags.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
normalize_semver("dev") returned 0, so ruby-dev was treated as older
than any released version and version-gated workarounds misfired.
Notably the Fedora 42+ -std=gnu17 workaround for Ruby < 3.2 was
applied to ruby-dev builds, which do not need it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@eregon
eregon requested a review from mislav August 31, 2026 14:44
@mislav
mislav merged commit 78d71ae into rbenv:master Sep 2, 2026
4 checks passed
@mislav

mislav commented Sep 2, 2026

Copy link
Copy Markdown
Member

Great catch; thanks!

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.

ruby-dev and Ruby < 3.2 compiled with -O0 on Fedora 42+

2 participants