This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Temporarily revert Steven's PCH changes for 4.8 (PR pch/54117)
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: Steven Bosscher <stevenb dot gcc at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Jeff Law <law at redhat dot com>, John David Anglin <danglin at gcc dot gnu dot org>, rupp at gnat dot com, "Joseph S. Myers" <joseph at codesourcery dot com>, Jakub Jelinek <jakub at redhat dot com>
- Date: Wed, 13 Feb 2013 16:33:01 -0500
- Subject: Re: [PATCH] Temporarily revert Steven's PCH changes for 4.8 (PR pch/54117)
- References: <20130213155423.GW4385@tucnak.redhat.com> <CABu31nPcY_3KWHSJ6h_U=MGZstmNVE-+rGAqtMex8-Y0hDpSkw@mail.gmail.com>
The AIX system supports DWARF debugging, but GCC does not generate it
on AIX and GDB does not consume it on AIX.
There is no way that I will allow experimental DWARF support to be
enabled at the same time STABS support is removed.
This is a non-starter.
If you want to disable PCH on STABS systems on just AIX, that is fine.
Thanks, David
On Wed, Feb 13, 2013 at 4:12 PM, Steven Bosscher <stevenb.gcc@gmail.com> wrote:
> On Wed, Feb 13, 2013 at 4:54 PM, Jakub Jelinek wrote:
>> Hi!
>>
>> As agreed on in the PR, here is the revertion of 3 commits, so that
>> PCH works again for -gstabs and other debug info formats for 4.8
>> release. For 4.9 we should either remove support for anything non-DWARF, or
>> hope somebody steps up and fixes dbxout.c etc. not to emit debug info right
>> away, but queue it till end of compilation.
>
>
> Hello,
>
> I'd still like to propose deprecating all stabs support for GCC 4.8 and
> remove it for GCC 4.9 (i.e. dbxout, sdbout, xcoffout).
>
> It's not a very useful debug info format, after all. The only
> argument against DWARF, that it is so much larger than stabs,
> is something I haven't been able to reproduce (see
> http://sourceware.org/ml/binutils/2013-01/msg00221.html and
> http://sourceware.org/ml/binutils/2013-01/msg00239.html).
> DWARF compression via dwz, and debug-fission will improve things
> even further.
>
> An important question is of course: Who still *needs* stabs? If there
> are important platforms that need stabs support to continue to work,
> then deprecating is probably not a realistic option yet...
>
> The list of platforms that are IMHO blockers rights now, with possible
> solutions for GCC 4.9, are:
>
> * hppa2.0w-hp-hpux11.11 - no solution immediately available
> * powerpc-ibm-aix* - only support AIX7 and later
> -> deprecate AIX6 and older in GCC 4.8
> * ix86-*-openbsd2.*, ix86-*openbsd3.[0123] - OpenBSD 3.3 was released
> in May 2003 -> deprecate for GCC 4.8
> * m68k*-*-openbsd - port has seen no active maintenance, and has no
> test results posted, ever -> deprecate for GCC 4.8
> * pdp11-*-* - toy port -> default to DEBUG_NONE
> * ix86-*-interix* - no solution immediately available, and no-one
> listed in MAINTAINERS to ask for help, so maybe Doug can say
> something about this one?
>
> Platforms that support DWARF2+ but currently have another default
> preferred debug info type, would be changed to default to DWARF2+.
>
> So older AIX and 32-bits HPUX are the only real problem cases.
>
> Ciao!
> Steven
>
>
>
>
>
>
>
> All GCC 4.8 primary platforms support DWARF2+, and AFAICT they all have
> it as their PREFERRED_DEBUGGING_TYPE (including freebsd):
>
> * arm-linux-gnueabi
> * i386-unknown-freebsd
> * i686-pc-linux-gnu
> * mipsisa64-elf
> * powerpc64-unknown-linux-gnu
> * sparc-sun-solaris2.10
> * x86_64-unknown-linux-gnu
>
> Most of the above also include other debug info types by default, but
> DWARF2+ is the default.
>
> For the secondary platforms list things are not so simple. Some of them
> have a non-DWARF PREFERRED_DEBUGGING_TYPE by default, and some only
> conditionally (old configurations):
>
> * hppa2.0w-hp-hpux11.11 -> DBX_DEBUGGING_INFO
> For 32-bits only, but that's the most common subtarget.
> According to Dave, it should be possible to add DRAWF2+ support:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54117#c14
> Perhaps Dave can explain what would have to be done to move this
> platform to DWARF2...?
>
> * powerpc-ibm-aix7.1.0.0 -> XCOFF_DEBUGGING_INFO
> I think this is for historical reasons. AIX7 has DWARF support,
> but it looks like that's not yet implemented in GCC.
> Older AIX do not support DWARF, AFAICT (David E.?).
>
> * i686-apple-darwin -> DBX_DEBUGGING_INFO
> MacOSX10.4, 32-bits (darwin8).
> All 64bits and darwin9+ prefer DWARF2.
>
> * i686-pc-cygwin, i686-mingw32 -> DBX_DEBUGGING_INFO
> With binutils 2.16 and later, DWARF2_DEBUGGING_INFO is the default:
> http://sourceware.org/ml/binutils/2004-04/msg00327.html
> http://gcc.gnu.org/ml/gcc-patches/2004-04/msg01885.html
> http://cygwin.com/ml/cygwin/2006-06/msg00865.html
>
> * s390x-linux-gnu -> DWARF2_DEBUGGING_INFO
>
>
> Other platforms that support DWARF2+ and have it as the preferred type:
> * *-*-elf* via:
> config/elfos.h:#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
> This is practically all ELF platforms. A few target headers redefine
> PREFERRED_DEBUGGING_TYPE, usually to DWARF2_DEBUG again...
> Exceptions are microblaze*-*-rtems*, microblaze*-*-elf*
> * tic6x-*-*, ix86-*-nto-qnx* via:
> config/tm-dwarf2.h:#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
> * *-*-vxworks* via:
> config/vx-common.h:#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
> * alpha*-dec-*vms* via:
> config/alpha/vms.h:#define PREFERRED_DEBUGGING_TYPE VMS_AND_DWARF2_DEBUG
> * hppa*64*-*-hpux11* via:
> config/pa/pa64-hpux.h:#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
>
>
> Other platforms that support DWARF2+ but prefer another debug info type
> by default:
> * rx-*-elf* if using TARGET_AS100_SYNTAX, via:
> config/rx/rx.h:#define PREFERRED_DEBUGGING_TYPE (TARGET_AS100_SYNTAX \
> config/rx/rx.h: ? DBX_DEBUG : DWARF2_DEBUG)
> * avr-*-* includes elfos.h but changes preffered debug info type via:
> config/avr/elf.h:#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
> * powerpc-*-lynxos*, ix86-*-lynxos* include elfos.h but change the
> preffered debug info type via:
> config/lynx.h:# define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
> * ix86-pc-msdosdjgpp*, supports DWARF2+ via:
> config/i386/djgpp.h:#define DWARF2_DEBUGGING_INFO 1
> but picks up its preferred debug info via:
> config/dbxcoff.h:#define PREFERRED_DEBUGGING_TYPE SDB_DEBUG
> * mn10300-*-*, v850*-*-* if configured --with-stabs, via
> config/dbx.h:#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
>
>
> Targets that do not support DWARF2+:
> * ix86-*-openbsd2.*, ix86-*openbsd3.[0123]
> * m68k*-*-openbsd via config/m68k/openbsd.h:#define DBX_DEBUGGING_INFO 1
> and no other files included that define another debug info type.
> * pdp11-*-*: config/pdp11/pdp11.h:#define DBX_DEBUGGING_INFO
> * ix86-*-interix* via:
> config/i386/i386-interix.h:#define DBX_DEBUGGING_INFO 1
> config/i386/i386-interix.h:#define SDB_DEBUGGING_INFO 1
> config/i386/i386-interix.h:#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
> and picks up nothing else from other header files.
>
>
> Unknown platforms:
> * config/arm/coff.h:#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
> Does any platform use this file?