[clang][Toolchains][Gnu] pass -g through to assembler
authorNick Desaulniers <ndesaulniers@google.com>
Mon, 24 Oct 2022 19:21:12 +0000 (12:21 -0700)
committerNick Desaulniers <ndesaulniers@google.com>
Mon, 24 Oct 2022 19:30:44 +0000 (12:30 -0700)
commite3bb359aacddb5e0266e219f33d27b642089fd53
tree6396509581faf1cf5e107ff27a4ac48bb202328c
parent1edc51b56a0c27db5561d7bb117918f88c28780a
[clang][Toolchains][Gnu] pass -g through to assembler

We've been working around this for a long time in the Linux kernel; we
bend over backwards to continue to support CC=clang (w/
-fno-integrated-as) for architectures where clang can't yet be used to
assemble the kernel's assembler sources. Supporting debug info for the
combination of CC=clang w/ GNU binutils as "GAS" has been painful.

Fix this in clang so that we can work towards dropping complexity in the
Linux kernel's build system, Kbuild, for supporting this combination of
tools.

GAS added support for -g in 2004 2.16 release via
commit 329e276daf98 ("Add support for a -g switch to GAS")

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D136309
clang/lib/Driver/ToolChains/Gnu.cpp
clang/test/Driver/as-options.s
clang/test/Driver/gcc_forward.c