This package is currently opted out of LTO because it uses ASMs to implement symbol versioning. ASMs like this are fundamentally incompatible with LTO because GCC does not look inside the ASM string to find symbol references. Starting with gcc-10 there is a new symbol attribute for implementing symbol versioning. This patch changes libaio to use that symbol attribute and re-enables LTO.
I have about 200 packages I'm working through, so I can't reasonably engage every upstream project. I'd like to merge this PR into Fedora so that LTO gets enabled for the efivar package and let the package maintainers engage the appropriate upstream community so that we don't have to carry a Fedora specific patch forever.
This package is currently opted out of LTO because it uses ASMs to implement symbol versioning. ASMs like this are fundamentally incompatible with LTO because GCC does not look inside the ASM string to find symbol references. Starting with gcc-10 there is a new symbol attribute for implementing symbol versioning. This patch changes libaio to use that symbol attribute and re-enables LTO.
I have about 200 packages I'm working through, so I can't reasonably engage every upstream project. I'd like to merge this PR into Fedora so that LTO gets enabled for the efivar package and let the package maintainers engage the appropriate upstream community so that we don't have to carry a Fedora specific patch forever.