Re: No debugsource generated, weird DWARF errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 29, 2020 at 06:33:45PM +0200, Mark Wielaard wrote:
> Hi,
> 
> On Wed, 2020-07-29 at 17:18 +0100, Richard W.M. Jones wrote:
> > (Adding OCaml author)
> 
> (Adding binutils/gas maintainer)
> 
> > On Wed, Jul 29, 2020 at 05:54:52PM +0200, Mark Wielaard wrote:
> > > On Wed, 2020-07-29 at 16:07 +0100, Richard W.M. Jones wrote:
> > I should probably add that I'm building these on my local machine
> > which isn't completely updated to Rawhide.  I'm not sure whether or
> > not that will make a difference - I'm assuming _not_ for what the
> > OCaml compiler generates (since I'm running the latest of that), but
> > not sure about the rest of the toolchain.  I'm using
> > binutils-2.34-3.fc32.x86_64.
> 
> Right. Same here. Dunno why mockbuild didn't pick up the 2.35 version,
> but I think the bug is in that one. See below.
> 
> > > > I also saved an asm file from one of them which may be helpful:
> > > > 
> > > > http://oirase.annexia.org/tmp/hacha.s
> > > 
> > > So ml depends on binutils gas to generate the actual debuginfo.
> > > I assume it gets called with: as -g
> > > Is there a way to see how exactly gas is called (with which arguments)?
> > 
> > In fact it *isn't* passing -g to as:
> > 
> > $ /usr/bin/ocamlopt.opt -c -w +a-3-4-9-41-45-67 -g -annot -safe-string -o hacha.cmx hacha.ml -S -verbose
> > + as  -o 'hacha.o' 'hacha.s'
> > 
> > Is this a problem?  I sort of assumed that as would have nothing to do
> > with generating debug information, beyond what is contained explicitly
> > in the .s file itself.
> 
> Yes, I think we have a winner!
> gas generates a tiny bit of debuginfo even if you don't supply -g.
> 
> But... in 2.35 you can give the DWARF level you want.
> The problem with not supplying -g (or --gdwarf-[VERSION]) is that the
> dwarf_level is never set! And then gas will happily create an
> .debug_info section with DWARF CUs that have a version of zero (!).
> 
> This, defaulting to version 4. Fixes it for me:
> 
> diff --git a/gas/as.c b/gas/as.c
> index 4c5881abd88..c2da78870ef 100644
> --- a/gas/as.c
> +++ b/gas/as.c
> @@ -103,7 +103,7 @@ int verbose = 0;
>  int flag_dwarf_cie_version = -1;
>  
>  /* The maximum level of DWARF DEBUG information we should manufacture.  */
> -unsigned int dwarf_level = 0;
> +unsigned int dwarf_level = 4;
>  
>  #if defined OBJ_ELF || defined OBJ_MAYBE_ELF
>  int flag_use_elf_stt_common = DEFAULT_GENERATE_ELF_STT_COMMON;

So if I understand the proposed fix correctly, we _don't_ need to pass
the -g option to gas?  Or should we do that also?

I see that binutils gas back to at least 2.27 has a -g option

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux