On Sun, Aug 16, 2020 at 8:02 AM Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > On Sun, Aug 16, 2020 at 07:22:35AM +0200, Sedat Dilek wrote: > > On Sun, Aug 16, 2020 at 2:19 AM 'Fangrui Song' via Clang Built Linux > > <clang-built-linux@xxxxxxxxxxxxxxxx> wrote: > > > > > > Adding a definition without a declaration for stpcpy looks good. > > > Clang LTO will work. > > > > > > (If the kernel does not want to provide these routines, > > > is http://git.kernel.org/linus/6edfba1b33c701108717f4e036320fc39abe1912 > > > probably wrong? (why remove -ffreestanding from the main Makefile) ) > > > > > > > We had some many issues in arch/x86 where *FLAGS were removed or used > > differently and had to re-add them :-(. > > > > So if -ffreestanding is used in arch/x86 and was! used in top-level > > Makefile - it makes sense to re-add it back? > > ( I cannot speak for archs other than x86. ) > > > > - Sedat - > > -ffreestanding disables _all_ builtins and libcall optimizations, which > is probably not desirable. If we added it back, we'd need to also go > back to #define various string functions to the __builtin versions. > > Though I don't understand the original issue, with -ffreestanding, > sprintf shouldn't have been turned into strcpy in the first place. > > 32-bit still has -ffreestanding -- I wonder if that's actually necessary > any more? > > Why does -fno-builtin-stpcpy not work with clang LTO? Isn't that a > compiler bug? I just confirmed that adding -fno-builtin-stpcpy to KBUILD_CFLAGS does work with LTO as well. Sami