2018-07-07 1:29 GMT+09:00 Kirill A. Shutemov <kirill@xxxxxxxxxxxxx>: > On Fri, Jul 06, 2018 at 11:13:02PM +0900, Masahiro Yamada wrote: >> >> LDFLAGS is for internal-use. >> >> Please do not override it from the command line. >> > >> > Can we generate a build error if a user try to override LDFLAGS, CFLAGS or >> > other critical internal-use-only variables? >> >> Yes, Make can check where variables came from. > > I think we should do this. > >> >> make LDFLAGS_KERNEL=... LDFLAGS_MODULE=... >> >> will allow you to append linker flags. >> > >> > Okay. It makes me wounder if we should taint kernel in such cases? >> > Custom compiler/linker flags are risky and can lead to weird bugs. >> >> OK. >> So, what problem are we discussing? > > Users set custom LDFLAGS/CFLAGS and break kernel. Then report bug that > hard to debug. See > > https://bugzilla.kernel.org/show_bug.cgi?id=200385 CFLAGS is only used under tools/. Passing CFLAGS is probably no effect to the kernel. In Linux makefiles, KBUILD_ prefixed variables are used internally. KBUILD_CFLAGS, KBUILD_CPPFLAGS, KBUILD_AFLAGS, etc. LDFLAGS is an exception. I do not know why. Renaming LDFLAGS to KBUILD_LDFLAGS will make the code consistent. At least, it will avoid overriding flags by accident. Of course, users still can change KBUILD_LDFLAGS if they really want. The build system could add belt and braces checks for that, but it is arguable since there are lots of lots of internal variables. > and start of this thread: > > https://lore.kernel.org/lkml/20180701213243.GA20180@xxxxxxxxxx.coreos.systems/ > > It took me a while to track down the issue. I blamed linker for a while. > >> > I've got it wrong. *Any* LDFLAGS option passed to make this way: >> > >> > make LDFLAGS="..." >> >> In your previous mail, I thought you were asking me how to pass >> custom linker flags. >> >> If not, we do not need to think about that case. >> Just say "Do not do that". > > At least we need to make user aware about risk of setting custom flags. > > -- > Kirill A. Shutemov -- Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe linux-x86_64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html