[LLVMbugs] [Bug 8348] New: [MC-COFF] COFF backend can't handle weak symbols

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sun Oct 10 00:31:17 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=8348

           Summary: [MC-COFF] COFF backend can't handle weak symbols
           Product: libraries
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
        AssignedTo: bigcheesegs at gmail.com
        ReportedBy: bigcheesegs at gmail.com
                CC: llvmbugs at cs.uiuc.edu


.def     _main;
    .scl    2;
    .type    32;
    .endef
    .text
    .globl    _main
    .align    16, 0x90
_main:                                  # @main
# BB#0:                                 # %entry
    subl    $4, %esp
    movl    $_test_weak, %eax
    testl    %eax, %eax
    je    LBB0_2
# BB#1:                                 # %if.then
    calll    _test_weak
    movl    $1, %eax
    addl    $4, %esp
    ret
LBB0_2:                                 # %return
    xorl    %eax, %eax
    addl    $4, %esp
    ret

    .weak    _test_weak

llvm-mc -filetype=obj chrashes. as produces: 

{
  MachineType              = IMAGE_FILE_MACHINE_I386 (0x14C)
  NumberOfSections         = 3
  TimeDateStamp            = 0
  PointerToSymbolTable     = 0xC0
  NumberOfSymbols          = 13
  SizeOfOptionalHeader     = 0
  Characteristics          = 0x104
    IMAGE_FILE_LINE_NUMS_STRIPPED
    IMAGE_FILE_32BIT_MACHINE
  Sections                 = [
    1 = {
      Name                     = .text
      VirtualSize              = 0
      VirtualAddress           = 0
      SizeOfRawData            = 32
      PointerToRawData         = 0x8C
      PointerToRelocations     = 0xAC
      PointerToLineNumbers     = 0x0
      NumberOfRelocations      = 2
      NumberOfLineNumbers      = 0
      Charateristics           = 0x60500020
        IMAGE_SCN_CNT_CODE
        IMAGE_SCN_ALIGN_16BYTES
        IMAGE_SCN_MEM_EXECUTE
        IMAGE_SCN_MEM_READ
      SectionData              =
        83 EC 04 B8 00 00 00 00 - 85 C0 74 0E E8 00 00 00 |..........t.....|
        00 B8 01 00 00 00 83 C4 - 04 C3 31 C0 83 C4 04 C3 |..........1.....|

      Relocations              = [
        0 = {
          VirtualAddress           = 0x4
          SymbolTableIndex         = 11
          Type                     = IMAGE_REL_I386_DIR32 (6)
          SymbolName               = _test_weak
        }
        1 = {
          VirtualAddress           = 0xD
          SymbolTableIndex         = 11
          Type                     = IMAGE_REL_I386_REL32 (20)
          SymbolName               = _test_weak
        }
      ]
    }
    2 = {
      Name                     = .data
      VirtualSize              = 0
      VirtualAddress           = 0
      SizeOfRawData            = 0
      PointerToRawData         = 0x0
      PointerToRelocations     = 0x0
      PointerToLineNumbers     = 0x0
      NumberOfRelocations      = 0
      NumberOfLineNumbers      = 0
      Charateristics           = 0xC0300040
        IMAGE_SCN_CNT_INITIALIZED_DATA
        IMAGE_SCN_ALIGN_4BYTES
        IMAGE_SCN_MEM_READ
        IMAGE_SCN_MEM_WRITE
      SectionData              = None
      Relocations              = None
    }
    3 = {
      Name                     = .bss
      VirtualSize              = 0
      VirtualAddress           = 0
      SizeOfRawData            = 0
      PointerToRawData         = 0x0
      PointerToRelocations     = 0x0
      PointerToLineNumbers     = 0x0
      NumberOfRelocations      = 0
      NumberOfLineNumbers      = 0
      Charateristics           = 0xC0300080
        IMAGE_SCN_CNT_UNINITIALIZED_DATA
        IMAGE_SCN_ALIGN_4BYTES
        IMAGE_SCN_MEM_READ
        IMAGE_SCN_MEM_WRITE
      SectionData              = None
      Relocations              = None
    }
  ]
  Symbols                  = [
    0 = {
      Name                     = .file
      Value                    = 0
      SectionNumber            = 65534
      SimpleType               = IMAGE_SYM_TYPE_NULL (0)
      ComplexType              = IMAGE_SYM_DTYPE_NULL (0)
      StorageClass             = IMAGE_SYM_CLASS_FILE (103)
      NumberOfAuxSymbols       = 1
      AuxillaryData            =
        66 61 6B 65 00 00 00 00 - 00 00 00 00 00 00 00 00 |fake............|
        00 00                                             |..|

    }
    2 = {
      Name                     = _main
      Value                    = 0
      SectionNumber            = 1
      SimpleType               = IMAGE_SYM_TYPE_NULL (0)
      ComplexType              = IMAGE_SYM_DTYPE_FUNCTION (2)
      StorageClass             = IMAGE_SYM_CLASS_EXTERNAL (2)
      NumberOfAuxSymbols       = 1
      AuxillaryData            =
        00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |................|
        00 00                                             |..|

    }
    4 = {
      Name                     = .text
      Value                    = 0
      SectionNumber            = 1
      SimpleType               = IMAGE_SYM_TYPE_NULL (0)
      ComplexType              = IMAGE_SYM_DTYPE_NULL (0)
      StorageClass             = IMAGE_SYM_CLASS_STATIC (3)
      NumberOfAuxSymbols       = 1
      AuxillaryData            =
        20 00 00 00 02 00 00 00 - 00 00 00 00 00 00 00 00 | ...............|
        00 00                                             |..|

    }
    6 = {
      Name                     = .data
      Value                    = 0
      SectionNumber            = 2
      SimpleType               = IMAGE_SYM_TYPE_NULL (0)
      ComplexType              = IMAGE_SYM_DTYPE_NULL (0)
      StorageClass             = IMAGE_SYM_CLASS_STATIC (3)
      NumberOfAuxSymbols       = 1
      AuxillaryData            =
        00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |................|
        00 00                                             |..|

    }
    8 = {
      Name                     = .bss
      Value                    = 0
      SectionNumber            = 3
      SimpleType               = IMAGE_SYM_TYPE_NULL (0)
      ComplexType              = IMAGE_SYM_DTYPE_NULL (0)
      StorageClass             = IMAGE_SYM_CLASS_STATIC (3)
      NumberOfAuxSymbols       = 1
      AuxillaryData            =
        00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |................|
        00 00                                             |..|

    }
    10 = {
      Name                     = .weak._test_weak._main
      Value                    = 0
      SectionNumber            = 65535
      SimpleType               = IMAGE_SYM_TYPE_NULL (0)
      ComplexType              = IMAGE_SYM_DTYPE_NULL (0)
      StorageClass             = IMAGE_SYM_CLASS_EXTERNAL (2)
      NumberOfAuxSymbols       = 0
      AuxillaryData            =

    }
    11 = {
      Name                     = _test_weak
      Value                    = 0
      SectionNumber            = 0
      SimpleType               = IMAGE_SYM_TYPE_NULL (0)
      ComplexType              = IMAGE_SYM_DTYPE_NULL (0)
      StorageClass             = IMAGE_SYM_CLASS_WEAK_EXTERNAL (105)
      NumberOfAuxSymbols       = 1
      AuxillaryData            =
        0A 00 00 00 01 00 00 00 - 00 00 00 00 00 00 00 00 |................|
        00 00                                             |..|

    }
  ]
}

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list