On Fri, Aug 26, 2022 at 11:10 AM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote: > > Dmitrii, Fangrui, and Mashahiro note: > > Before GCC 11 and Clang 12 -gsplit-dwarf implicitly uses -g2. > > Fix CONFIG_DEBUG_INFO_SPLIT for gcc-11+ & clang-12+ which now need -g > specified in order for -gsplit-dwarf to work at all. Looking at commit 866ced950bcd ("kbuild: Support split debug info v4") I'm curious whether -gsplit-dwarf needed to be mutually exclusive with -g, possibly for older compilers? Andi, do you recall? I have gcc-9 handy; that doesn't seem to be the case. I get the same size binary with `-gsplit-dwarf` as I do with `-g -gsplit-dwarf`. So it does seem like mutual exclusion between the two is not necessary. x86_64-gcc-5.5.0-nolibc-x86_64-linux.tar.gz from https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/5.5.0/ seems to really need libisl.so.15... $ cd /tmp $ wget https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/5.5.0/x86_64-gcc-5.5.0-nolibc-x86_64-linux.tar.gz $ echo "void foo(void) {}" > x.c $ ./gcc-5.5.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc-5.5.0 -gsplit-dwarf x.c -c /tmp/gcc-5.5.0-nolibc/x86_64-linux/bin/../libexec/gcc/x86_64-linux/5.5.0/cc1: error while loading shared libraries: libisl.so.15: cannot open shared object file: No such file or directory $ find /usr/lib -name libisl\* /usr/lib/x86_64-linux-gnu/libisl.so.23.2.0 /usr/lib/x86_64-linux-gnu/libisl.so.23 /usr/lib/x86_64-linux-gnu/libisl.a /usr/lib/x86_64-linux-gnu/libisl.so > > Link: https://lore.kernel.org/lkml/20220815013317.26121-1-dmitrii.bundin.a@xxxxxxxxx/ > Link: https://lore.kernel.org/lkml/CAK7LNARPAmsJD5XKAw7m_X2g7Fi-CAAsWDQiP7+ANBjkg7R7ng@xxxxxxxxxxxxxx/ > Link: https://reviews.llvm.org/D80391 > Reported-by: Dmitrii Bundin <dmitrii.bundin.a@xxxxxxxxx> > Reported-by: Fangrui Song <maskray@xxxxxxxxxx> > Reported-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > Suggested-by: Dmitrii Bundin <dmitrii.bundin.a@xxxxxxxxx> > Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > --- > scripts/Makefile.debug | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/scripts/Makefile.debug b/scripts/Makefile.debug > index a7a6da7f6e7d..0f9912f7bd4c 100644 > --- a/scripts/Makefile.debug > +++ b/scripts/Makefile.debug > @@ -1,10 +1,8 @@ > -DEBUG_CFLAGS := > +DEBUG_CFLAGS := -g > +KBUILD_AFLAGS += -g > > ifdef CONFIG_DEBUG_INFO_SPLIT > DEBUG_CFLAGS += -gsplit-dwarf > -else > -DEBUG_CFLAGS += -g > -KBUILD_AFLAGS += -g > endif > > ifdef CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT > -- > 2.37.2.672.g94769d06f0-goog > -- Thanks, ~Nick Desaulniers