forked from InBetweenNames/gentooLTO
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Workaround cleanup #3
Open
jhatler
wants to merge
63
commits into
master
Choose a base branch
from
workaroundCleanup
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains 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
This removes workarounds for packages which are not present in the portage tree. It also updates the names of some packages which have been renamed. This is based on the upstream issue referenced below. Refs: InBetweenNames#859 Signed-off-by: Jaremy Hatler <[email protected]>
This removes the workarounds verified by neeshy to be unnecessary. See neeshy's comments reference in the below issue for more context. Refs: InBetweenNames#883 Signed-off-by: Jaremy Hatler <[email protected]>
The GentooLTO project has not gone through the effort of testing all of the workarounds it's accumulated over the years. This commit renames all of the .cflags files to be prefixed with untested- so that users know that they are not tested and may not be needed. It also adds a new version of the ltoize rebuild (0.10.0) that uses the new files. Signed-off-by: Jaremy Hatler <[email protected]>
This recreates the original package.cflags files to hold workarounds which have been tested and deemed safe and necessary. Signed-off-by: Jaremy Hatler <[email protected]>
This comments all untested workarounds. This will make it easier to see which are needed and incrementatlly enable them. Once tested, they can be moved to the un-prefixed package.cflags files. Signed-off-by: Jaremy Hatler <[email protected]>
This updated the make.conf.lto file to enable the pgo and lto USE flags by default. Signed-off-by: Jaremy Hatler <[email protected]>
This makes the override-flagomatic flag enabled in the ebuild by default, without changing the default behavior. This was done by adding LTO_ENABLE_FLAGOMATIC=yes to make.conf.lto. This allows the user to now use the flag-o-matic.conf file to disable flagomatic instead of using it to enable it. Signed-off-by: Jaremy Hatler <[email protected]>
sys-devel/binutils handles its own LTO, so we need to disable the flags we add ourselves for it. Graphite and ipa-pta are tested to work, but flag-o-matic needs disabled for them to be applied. devirtualize-at-ltrans breaks the tests. no-semantic-interposition breaks the tests. Signed-off-by: Jaremy Hatler <[email protected]>
The symlink was incorrectly named wflag-o-matic.conf. Signed-off-by: Jaremy Hatler <[email protected]>
This was tested to be unneeded, all python tests passed. Signed-off-by: Jaremy Hatler <[email protected]>
The gold linker has not be recommended for use with GentooLTO for some time. This removes the workarounds for it. Signed-off-by: Jaremy Hatler <[email protected]>
This was built without the workaround and tested to work correctly. Signed-off-by: Jaremy Hatler <[email protected]>
No isues were encountered when building this without the workarounds. Signed-off-by: Jaremy Hatler <[email protected]>
No issues were encountered building this without workarounds. Signed-off-by: Jaremy Hatler <[email protected]>
The no-common workarounds were primarily needed for GCC 9. Reviewing the GentooLTO issue tracker, and GentooLTO#484 in particular, it seems that GCC 10 and binutils 2.34 have resolved the issues. This commit removes the no-common workarounds and the keep-nocommon USE flag. Signed-off-by: Jaremy Hatler <[email protected]>
It appears that the tls-dialect setting in GCC has very little testing and is not used very much. This removes the workarounds for it and I'll not be supporting it in the future. RefS: https://www.mail-archive.com/[email protected]/msg170586.html Signed-off-by: Jaremy Hatler <[email protected]>
This removes the prelink support from this project. It seems to have few users left and is not worth the effort to maintain. Signed-off-by: Jaremy Hatler <[email protected]>
This removes the support and workarounds for the no-plt flag. Usage of the flag interferes with lazy binding and doesn't seem to be worth the effort to maintain. Signed-off-by: Jaremy Hatler <[email protected]>
As of Python 3.12, the gentoo repo supports both an LTO and PGO flag. Maintaining a distinct python package in this repo is no longer necessary. Signed-off-by: Jaremy Hatler <[email protected]>
The packages removed in this commit are no longer present in the gentoo tree, so the workarounds are no longer needed. Signed-off-by: Jaremy Hatler <[email protected]>
This adds a header to each untested file that lists the number of workarounds in it which have yet to be tested. Signed-off-by: Jaremy Hatler <[email protected]>
This removes the portage-bashrc-mv workarounds because they were only needed to resolve a failure in dev-util/colm which has been addressed upstream as of 0.14.7. Signed-off-by: Jaremy Hatler <[email protected]>
This enables the no-semantic-interposition workaround for umockdev now that it has been tested as still being necessary. Signed-off-by: Jaremy Hatler <[email protected]>
app-crypt/gcr has been tested to work with LTO but semantic interposition must be disable. Signed-off-by: Jaremy Hatler <[email protected]>
This has been tested to no longer be necessary. Signed-off-by: Jaremy Hatler <[email protected]>
Ruby was built with LTO and -Werror=strict-aliasing which validates that no workarounds are needed for it. Signed-off-by: Jaremy Hatler <[email protected]>
spidermonkey has been tested to build find with ipa-pta and LTO enabled. Signed-off-by: Jaremy Hatler <[email protected]>
This removes the -Ofast workaround and adds one for LTO. Signed-off-by: Jaremy Hatler <[email protected]>
The workaround has been tested to be unnecessary. Signed-off-by: Jaremy Hatler <[email protected]>
This removes the -fno-finite-math-only workaround and adds one for LTO. Signed-off-by: Jaremy Hatler <[email protected]>
This removes the ipa-pta workaround for ffmpeg and adds one to disable LTO. Signed-off-by: Jaremy Hatler <[email protected]>
This removes the no-semantic-interposition and and -fno-finite-math workarounds. It adds a workaround to disable ipa-pta, which breaks the llvm tests. Signed-off-by: Jaremy Hatler <[email protected]>
These have been tested to be unnecessary. Signed-off-by: Jaremy Hatler <[email protected]>
This has been tested to be unnecessary. Signed-off-by: Jaremy Hatler <[email protected]>
This updates the counts of untested workarounds in the file headers. Signed-off-by: Jaremy Hatler <[email protected]>
This adds the below flags to the LTO_WARNING_FLAGS variable and adds it to CFLAGS by default. These flags are from the Gentoo wiki. If a package fails to compile with these flags, LTO should not be used. - -Werror=odr - -Werror=lto-type-mismatch - -Werror=strict-aliasing Signed-off-by: Jaremy Hatler <[email protected]>
This has been tested to be incompatible with LTO. Signed-off-by: Jaremy Hatler <[email protected]>
The package has been tested to compile fine with LTO, but the tests fail when -Werror=lto-type-mismatch is enabled. Signed-off-by: Jaremy Hatler <[email protected]>
This package fails its tests when the -Werror=odr flag is used. Signed-off-by: Jaremy Hatler <[email protected]>
This package fails to compile with LTO. Signed-off-by: Jaremy Hatler <[email protected]>
The package compiles fine with LTO but the tests fail with strict-aliasing enabled. Signed-off-by: Jaremy Hatler <[email protected]>
This package fails to compile with LTO enabled. Signed-off-by: Jaremy Hatler <[email protected]>
This package fails to compile with LTO enabled. Signed-off-by: Jaremy Hatler <[email protected]>
This package fails to compile with LTO enabled. Signed-off-by: Jaremy Hatler <[email protected]>
This package fails to pass its tests when LTO is enabled. Signed-off-by: Jaremy Hatler <[email protected]>
This package fails to compile and pass its test with LTO or -O3. Signed-off-by: Jaremy Hatler <[email protected]>
The latest workarounds were not added in alphabetized order. Signed-off-by: Jaremy Hatler <[email protected]>
This adds a patch from Fedora and the necessary workarounds to compile libtool with LTO. Signed-off-by: Jaremy Hatler <[email protected]>
This package fails to compile with LTO. Signed-off-by: Jaremy Hatler <[email protected]>
This package fails to pass its tests when graphite optimizations are enabled. Signed-off-by: Jaremy Hatler <[email protected]>
This package causes downstream tests to fail with ipa-pta is enabled. Its own tests fail with -O3 is used. Signed-off-by: Jaremy Hatler <[email protected]>
The workaround for gcr had the version appended accidentally. This was removed. Signed-off-by: Jaremy Hatler <[email protected]>
There were some leftover configurations in the ltoize ebuild that were not removed when the no-common workarounds were removed. This commit removes those leftover configurations. Refs: b0cd07c Signed-off-by: Jaremy Hatler <[email protected]>
The bluez package fails its tests when built with LTO. Signed-off-by: Jaremy Hatler <[email protected]>
LLVM 17 fails to pass its tests when built with LTO by gcc. Signed-off-by: Jaremy Hatler <[email protected]>
This removes the workarounds for llvm because they were encountered with gcc and this repo isn't supporting building llvm with gcc. Signed-off-by: Jaremy Hatler <[email protected]>
The gentoo tree moved some packages from sys-devel to dev-build. This updates the configurations in this repo to reflect that change. Signed-off-by: Jaremy Hatler <[email protected]>
gpm fails to build with lto. Signed-off-by: Jaremy Hatler <[email protected]>
abseil-cpp needed lto and ipa-pta flags to be disabled for builds to succeed. Signed-off-by: Jaremy Hatler <[email protected]>
Tests fail when lto is enabled. Signed-off-by: Jaremy Hatler <[email protected]>
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.
This cleans up the workarounds which have accumulated over time.
The work of neeshy in InBetweenNames#883 and the details of InBetweenNames#859 were incorporated into this PR.
Then, all of the remaining workarounds were moved to package.cflags files prefixed with untested- and commented. A new version of ltoize (0.10.0) was created which installed the prefixed and non-prefixed files.
From here, this PR will need incrementally updated as things are tested. Commented workaround which are found to be unneeded should be delete. Workarounds still needed should be tested locally, and then moved to the unprefixed files. This workflow will allow the untested- files to act as a backlog of what still needs tested.