Skip to content
  • Jose Fonseca's avatar
    scons: Don't force stabs debug format for Mingw. · 8cabc7be
    Jose Fonseca authored
    - recent gdb handles DWARF fine (tested both with version
      7.1.90.20100730 from mingw-w64 project, and 7.5-1 from mingw project)
    
    - http://people.freedesktop.org/~jrfonseca/bfdhelp/ was updated to
      handle DWARF
    
    - stabs requires ugly hacks to prevent compilation failures
    
    - mixing stabs/dwarf prevents proper backtraces (which is inevitable,
      given that the MinGW C runtime is pre-built with DWARF)
    
    For example, without this change I get:
    
      (gdb) bt
      #0  _wassert (_Message=0xf925060 L"Num < NumOperands && \"Invalid child # of SDNode!\"",
          _File=0xf60b488 L"llvm/include/llvm/CodeGen/SelectionDAGNodes.h", _Line=534)
          at ../../../../mingw-w64-crt/misc/wassert.c:51
      #1  0x0368996b in _assert (_Message=0x39d7ee4 "Num < NumOperands && \"Invalid child # of SDNode!\"",
          _File=0x39d7e94e
    
     "llvm/include/llvm/CodeGen/SelectionDAGNodes.h", _Line=534)
          at ../../../../mingw-w64-crt/misc/wassert.c:44
      #2  0x00000004 in ?? ()
      #3  0x00000004 in ?? ()
      #4  0x0f60b488 in ?? ()
      #5  0x00000000 in ?? ()
    
    While with this change I get:
    
      (gdb) bt
      #0  _wassert (_Message=0xfb982e8 L"Num < NumOperands && \"Invalid child # of SDNode!\"",
          _File=0xefbcb40 L"llvm/include/llvm/CodeGen/SelectionDAGNodes.h", _Line=534)
          at ../../../../mingw-w64-crt/misc/wassert.c:51
      #1  0x039c996b in _assert (_Message=0x3d17f24 "Num < NumOperands && \"Invalid child # of SDNode!\"",
          _File=0x3d17ed4 "llvm/include/llvm/CodeGen/SelectionDAGNodes.h", _Line=534)
          at ../../../../mingw-w64-crt/misc/wassert.c:44
      #2  0x033111cc in getOperand (Num=4, this=<optimized out>)
          at llvm/include/llvm/CodeGen/SelectionDAGNodes.h:534
      #3  getOperand (i=4, this=<optimized out>)
          at llvm/include/llvm/CodeGen/SelectionDAGNodes.h:779
      #4  llvm::SelectionDAG::getNode (this=0xf00cb08, Opcode=79, DL=..., VT=..., N1=..., N2=...)
          at llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:2859
      #5  0x03377b20 in llvm::SelectionDAGBuilder::visitExtractElement (this=0xfb45028, I=...)
          at llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:2803
      [...]
    
    Reviewed-by: default avatarBrian Paul <brianp@vmware.com>
    8cabc7be