On Thu, Jul 20, 2017 at 2:00 PM, Nathan Sidwell <nat...@acm.org> wrote: > With this patch the gdb stabs test results are still awful, but they are > unchanged awfulness.
Yes, the stabs support for C++ is poor. That is one of the reasons why almost everyone has switched to dwarf2. I wasn't sure what to make of your last message, so I tried to see if I could build a toolchain that defaults to stabs so I could look at this. I discovered that -freorder-functions doesn't work with stabs on an elf target, as we get a cross section label subtraction that the assembler can't compute. I had to manually disable that optimization. I also had to disable the x86 specific change to enable -freorder-blocks-and-partition at -O2. I managed to get it working for x86_64-linux and i686-pc-cygwin. But the fact that -O2 and stabs don't work together by default anymore suggest that there are no serious stabs users except on old legacy systems that don't support named sections, and hence don't support -freorder-functions. I also noticed that there is a config/i386/gstabs.h file that has been unused since the openbsd 2 and 3 support was removed last year, and should be deleted. Anyways, your new dbxout.c patch looks good. And maybe we should think about deprecating the stabs support some day. Jim