[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