MDEV-39157 BUILD_TYPE=mysql_release to remove compile flags#4890
Open
grooverdan wants to merge 1 commit intoMariaDB:10.11from
Open
MDEV-39157 BUILD_TYPE=mysql_release to remove compile flags#4890grooverdan wants to merge 1 commit intoMariaDB:10.11from
grooverdan wants to merge 1 commit intoMariaDB:10.11from
Conversation
BUILD_TYPE=mysql_release changes a bunch of build flags on Linux/UNIX systems and our CI processes insufficiently test the impacts of these. This effectively drops the gcc/clang optimization from O3 of a release down to O2. The performance gains of O3 vs O2 are currently insufficiently tested (MDEV-19734 is outstanding). What is clear is amd64v3 is providing the ability of enhanced MMX instructions which causes segfaults on unaligned addresses (MDEV-38989 and others). As compilers get smarter and O3 provides more transforms is safer if the CMAKE_BUILD_TYPE=RelWithDebInfo experiences of CI have identical compile flags, with BUILD_TYPE=mysql_release changing to present required features only. This resolves MDEV-35809 by removing the specialized optimization for platforms that are unsupported or unmaintained per PR MariaDB#3744 comments.
vaintroub
reviewed
Apr 2, 2026
Member
vaintroub
left a comment
There was a problem hiding this comment.
I like it generally, however as far as I remember, -fno-omit-frame-pointer is a good flag that would be pity to lose. It is a tiny de-optimization, for the sake of better stack traces and perf. Maybe it should go elsewhere, not into this file only, what do you think?
Member
Author
I think you're right, so much you already did: e54723f 😄 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BUILD_TYPE=mysql_release changes a bunch of build flags on Linux/UNIX systems and our CI processes insufficiently test the impacts of these.
This effectively drops the gcc/clang optimization from O3 of a release down to O2. The performance gains of O3 vs O2 are currently insufficiently tested (MDEV-19734 is outstanding).
What is clear is amd64v3 is providing the ability of enhanced MMX instructions which causes segfaults on unaligned addresses (MDEV-38989 and others). As compilers get smarter and O3 provides more transforms is safer if the CMAKE_BUILD_TYPE=RelWithDebInfo experiences of CI have identical compile flags, with BUILD_TYPE=mysql_release changing to present required features only.
This resolves MDEV-35809 by removing the specialized optimization for platforms that are unsupported or unmaintained per PR #3744 comments.