On Wed, Feb 21, 2018 at 11:09 AM, Ard Biesheuvel <ard.biesheu...@linaro.org> wrote: > On 21 February 2018 at 09:48, Arnd Bergmann <a...@arndb.de> wrote: >> On Wed, Feb 21, 2018 at 9:37 AM, Ard Biesheuvel >> <ard.biesheu...@linaro.org> wrote: >>> On 20 February 2018 at 21:59, Arnd Bergmann <a...@arndb.de> wrote: > >> In some cases we turn off >> some optimization step for a file, we might remove '-pg', or build for >> a particular target architecture. Do we have to turn off -flto for any file >> that requires this for correct behavior? >> > > Excellent question. I think the problem is that the file boundary is > becoming blurred with LTO, and so any option that is absolutely > required to build a single file correctly may need to be applied to > vmlinux as a whole. Whether that is the case for any particular option > depends on which compiler pass(es) is (are) affected by the option, > i.e., whether it is taken into account when creating the intermediate > representation.
Newer compilers are able to change both the optimization and warning flags per function using a #pragma or _Pragma() directive or function attributes. There has been some recent discussion about requiring a newer gcc version, so if we do that, we could perhaps replace all the existing CFLAGS overrides with those pragmas. Arnd