Il 13/02/2013 22:12, Steven Bosscher ha scritto: > 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...
stabs are "needed" to use VTune on Windows. Paolo > 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? >