On Tue, Aug 25, 2020 at 11:02 PM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote: > > On Tue, Aug 25, 2020 at 5:30 AM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote: > > > > On Tue, Aug 25, 2020 at 4:10 PM Nick Desaulniers > > <ndesaulniers@xxxxxxxxxx> wrote: > > > > > > Masahiro, are you implying that we shouldn't take the > > > -fno-builtin-stpcpy patch, because Clang is inconsistent? (That can be > > > fixed.) Even though -fno-builtin-stpcpy works here as intended? > > > https://lore.kernel.org/lkml/20200817220212.338670-2-ndesaulniers@xxxxxxxxxx/ > > > > > > Otherwise we need to provide an implementation of this symbol in the kernel. > > > https://lore.kernel.org/lkml/20200815020946.1538085-1-ndesaulniers@xxxxxxxxxx/ > > > > > > Please, pick your poison. > > > > > > > > I am not a compiler expert. > > > > Nor am I sure if I am the right person who makes this decision. > > But, if so, I would choose the latter. > > (implement stpcpy() in the kernel) > > > > I was addressed last night, so > > I should write up my thoughts. > > > > I do not think -fno-builtin-stpcpy is a > > general solution. > > > > -fno-builtin-stpcpy will work for now > > because only Clang implements the transformation > > from 'sprintf(dest, "%s", str)' into > > 'stpcpy(dest, str) - dest'. > > > > If GCC implements it some day, > > we would run into a problem because > > in GCC, it is not -fno-builtin-stpcpy, but > > -fno-builtin-sprintf that disables that optimization. > > > > In this regard, 'KBUILD_CFLAGS += -fno-builtin-sprintf' > > would be more future-proof, but it is potentially > > an overkill. > > We want to disable optimization from sprintf() to stpcpy(), > > but we may still benefit from the optimization from > > sprintf() into something else. > > > > > > Linus is uncomfortable with this kind of compiler magic. > > If we take compiler's freedom away, > > -ffreestanding is a big hammer to solve this problem. > > > > If we welcome the compiler's optimization, > > we should implement stpcpy(), bcmp(), and whatever > > until we solve all link errors. > > Speculating that -ffreestanding is untenable, submitted v3: > https://lore.kernel.org/lkml/20200825135838.2938771-1-ndesaulniers@xxxxxxxxxx/T/#u > -- > Thanks, > ~Nick Desaulniers FYI: Andrew Morton picked up this patch. -- Best Regards Masahiro Yamada