Skip to content

Allow for LTO control in Dockerfile.redhat #3110

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

stevegrubb
Copy link
Contributor

This patch updates Dockerfile.redhat to push LTO into dependencies and the main build. It does this by adding 3 ARGS that can be controlled by passing environmental varibles to the build: LTO_ENABLE, LTO_CXX_FLAGS and LTO_LD_FLAGS. LTO_LD_FLAGS defaults to "-Wl,-z,relro" which is a noop since it's hardcoded in the RHEL linker.

The Boost build is also updated to pass LTO and additional flags to the build. It also adds 'variant' to the build so it's optimized.

In the area where OpenVino is being built, we also add LTO_CXX_FLAGS and LTO_LD_FLAGS to the cmake because using LTO_CXX_FLAGS also can contain additional directives such as -march but also because CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE doesn't reach all places. (Maybe the build type info is not being used.) It's for this same reason that we pass these to the tokenizer build.

We also pass the LTO option to opencv.

This patch updates Dockerfile.redhat to push LTO into dependencies and
the main build. It does this by adding 3 ARGS that can be controlled
by passing environmental varibles to the build: LTO_ENABLE, LTO_CXX_FLAGS
and LTO_LD_FLAGS. LTO_LD_FLAGS defaults to "-Wl,-z,relro" which is a
noop since it's hardcoded in the RHEL linker.

The Boost build is also updated to pass LTO and additional flags to the
build. It also adds 'variant' to the build so it's optimized.

In the area where OpenVino is being built, we also add LTO_CXX_FLAGS and
LTO_LD_FLAGS to the cmake because using LTO_CXX_FLAGS also can contain
additional directives such as -march but also because
CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE doesn't reach all places. (Maybe
the build type info is not being used.) It's for this same reason that we
pass these to the tokenizer build.

We also pass the LTO option to opencv.
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.

1 participant