If we ship the .o files in a package, the LTO bits should indeed be stripped, otherwise users with slightly different compiler would find them unusable too. But in this case: 1) Should the .o files be built with LTO at all? I.e. do we use them also in the build process to link with something to build a program or a shared object? If not, I'd suggest switching LTO off for them. 2) If yes, they need to be built with -ffat-lto-objects - are they? 3) After the stripping, what do they look like, what sectins do they still contain?