-
Notifications
You must be signed in to change notification settings - Fork 96
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
LTO configuration and workarounds touchup and two new workarounds (take two) #464
base: master
Are you sure you want to change the base?
Conversation
While this basically makes `-fwhole-program` unusable by default, it's not a bad default to have. As there is a mixture of strings and direct flags being used in ltoworkarounds.conf (one line might have `*FLAGS-=-flto*`, while another might have `*FLAGS-="${FLTO}"`), this can kind of be remedied by using only direct flags. That way, if somebody were to wish to use `-fwhole-program`, they would still be able to benifit from ltoworkarounds.conf, since the file would now definitely work with all setups, including those that might set some flags manually in make.conf, that is without using the strings from make.conf.lto.defines. Also, ${FLTO} was the only odd name out, so now it's ${LTO}.
So... Regarding my previous commit message, LTO is the one flag that is never mentioned as a string. I got confused, but I was still correct about mixed usage.
To think that **this** project would ever have the word "legacy" used anywhere...
Regarding your question, the reason why is that I am the one that is committing to the central GentooLTO repository. The committer is not necessarily the same as the author. |
Is this ready to be merged? |
|
OK -- I'd like to see this PR broken up into a few smaller PRs. Namely, I think the Second, if we're going to be getting rid of Third, the new workarounds you're adding should be in a separate PR than these other two, because we need to be able to track those in the git log. I can't count the number of times I've needed to track down when something was added via In principle these changes look good -- with these few small adjustments they should get merged in no time. |
Regarding your question about what Matthew is doing over in the Olive project, he probably isn't merging directly on GitHub but doing it manually via the command line. He may be using |
Hm... The confirmation message looks to be the same as when you accept pull requests.
I will ask him then (it could take a while...). Wonders why this request is still open instead of accepted |
Okay, I reviewed your individual commits and I'm satisfied -- but please in the future don't do mega PRs. There should be, in general, be one change per PR, whether that's adding or removing a workaround (or related set of workarounds), renaming a variable, or clean-up work. Anything that makes me spend more than 10 seconds reviewing is not likely to get accepted right away. |
Okay, I spoke too soon. There is a problematic part of this patch series:
So Also, I can't make changes directly on this myself because I would be committing to master on your repository, and I don't want to break things on your end. So, my advice is the following:
If you do this, your stuff should be accepted in no time. |
Realizes that, due to how ebuilds work, some of what I said on Gitter is unnecessary All right, sequential requests it is. Now, off to very late sleep. Oh, and I ended up just making all of the changes at once, so it all ended up in one request. I shall be much more careful in the future. Prays for forgiveness |
No harm, no foul -- this is how learning is done! |
fuse-linker-plugin option is not necessary: it is enabled by default if you have a linker newer than 2.21 which is ages ago (not even available in gentoo). |
@InBetweenNames What do you say to that? Also, the power went out twice. I am still recompiling everything with GCC 10 pre-release, just using a Xubuntu LiveUSB (Kubuntu is now over two gigabytes). As you might guess, I am currently on my phone. |
On my system, GCC 9.3.0:
|
Okay, I did some more reading and went into the GCC sources. Apparently it really is used as @nivedita76 said -- the only time it isn't used is if you explicitly pass |
Great! 😃 I got a new laptop, but can't unscrew the last few stubborn screws to insert the HDD from my old one to get back on Gentoo (currently on Ubuntu Eoan). In the mean time, somebody in here could try to compile a package with and without the explicit invocation of the linker plugin to triple check that it remains implied. EditI am currently caught up in this, so it might even be longer than the time that it takes for the screws to naturally loosen in a hot laptop. |
#452, but clean.
@InBetweenNames, @wolfwood, here I am, hoping that I do not end up having to do this song and dance every single time.
Edit