On Thu, Dec 10, 2020 at 03:18:45PM -0800, Nick Desaulniers wrote: > On Fri, Dec 4, 2020 at 9:06 AM Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > > > Why? Does this actually cause any problems? > > > > It seems like the options for gcc can actually be very straightforward: > > you just need a cc-option check, and then add -gdwarf-N to both CFLAGS > > and AFLAGS and you're done. Adding the -Wa flag is superfluous and > > carries the risk of interfering with what the compiler driver does. Just > > let the gcc driver handle the details. > > > > Clang/IAS is almost as straightforward, with the only additional edge > > case being that for assembler files, DWARF 2 doesn't work, so the CFLAGS > > is the same -gdwarf-N, but AFLAGS gets -gdwarf-N only if N > 2. > > > > The messy case is only Clang/IAS=0, which needs to check the support > > from the external assembler, and needs CFLAGS of -gdwarf-N and AFLAGS of > > -Wa,--gdwarf-N, because Clang doesn't pass that option on to an external > > assembler. This is why I was asking if the assembler support check can > > be restricted to CC_IS_CLANG: nothing but Clang/IAS=0 actually requires > > that check. > > Oh, I see. Yeah, that might be a nicer approach. What should we do in > the case of gcc < 7 though, where -gdwarf-5 won't produce DWARF v5? > Maybe that's ok, but the intent behind the Kconfig check was to > prevent the option from being selectable if the tools do not support > it. Maybe it's more flexible to pass the arguments along, and hope > for the best? > > As a gcc-5 user, I might be surprised if I chose > CONFIG_DEBUG_INFO_DWARF5 if what I got was not actually DWARF v5; it > does violate the principle of least surprise. Maybe that doesn't > matter though? Even the current gcc documentation still says "DWARF Version 5 is only experimental". If the user wants to try it out, I think it's fine to let them get whatever subset their tool chain produces, as long as it's not completely broken. Your latest help text does say that gcc 7+ is required, maybe add another sentence saying that gcc 5+ only has partial support for some draft DWARF 5 features? Thanks.