This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA/commit/Win64] Remove new extra leading underscore in symbol name
On Thursday 24 June 2010 19:23:17, Joel Brobecker wrote:
> > Joel> 2010-06-17 Joel Brobecker <brobecker@adacore.com>
> > Joel> gdb/
> > Joel> * coffread.c (getsymname): Skip the leading underscore on pe64.
> >
> > I don't know anything about this target, but the binutils patch includes
> > a --enable-leading-mingw64-underscores option...
> >
> > Joel> + const char *target = bfd_get_target (symfile_bfd);
> > Joel> + const int is_pe64 = (strcmp (target, "pe-x86-64") == 0
> > Joel> + || strcmp (target, "pei-x86-64") == 0);
> >
> > ...so maybe instead of looking at the target name, it would be better to
> > use bfd_get_target_info here?
>
> I'm a little nervous at changing the check to a non target-specific
> one without multi-platform testing. Unfortunately, I haven't had
> a chance to work on this yet, and I'd really like to have that for 7.2.
>
> Would it be OK for me to commit this change as is while I instrument
> what you suggest on all other platforms we have that use COFF? (I'm
> expecting to be able to make that change today)
I'm confused on your change. It sounds like you're using a debugger
that postdates the change to default to not output underscores on
win64, with a compiler that still outputs the underscores. What
happens when you update your compiler? I expect your patch to break
binaries produced by a compiler that also doesn't output
underscores anymore on c symbols, as mingw64's. Isn't that so?
I don't think either a bfd_get_target or bfd_get_target_info check
will always get you a right answer, since those essentially are
returning hardcoded answers in bfd, not how the binaries were
built. Am I wrong?
--
Pedro Alves