mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 06:00:28 +00:00
llvm-objdump: support dumping AUX records for weak externals
This is a support COFF feature. Ensure that we can display the weak externals auxiliary symbol. It contains useful information (such as the default binding and how to resolve the symbol). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270648 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
abf016e342
commit
d51855e21d
26
test/Object/Inputs/COFF/weak-externals.yaml
Normal file
26
test/Object/Inputs/COFF/weak-externals.yaml
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
header:
|
||||
Machine: IMAGE_FILE_MACHINE_ARMNT
|
||||
Characteristics: [ ]
|
||||
sections:
|
||||
- Name: .rdata
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 1
|
||||
SectionData: ''
|
||||
symbols:
|
||||
- Name: Function
|
||||
Value: 0
|
||||
SectionNumber: 0
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_WEAK_EXTERNAL
|
||||
WeakExternal:
|
||||
TagIndex: 9
|
||||
Characteristics: IMAGE_WEAK_EXTERN_SEARCH_LIBRARY
|
||||
- Name: .weak.Function.default
|
||||
Value: 0
|
||||
SectionNumber: -1
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
||||
...
|
5
test/Object/coff-weak-externals.test
Normal file
5
test/Object/coff-weak-externals.test
Normal file
@ -0,0 +1,5 @@
|
||||
RUN: yaml2obj %p/Inputs/COFF/weak-externals.yaml | llvm-objdump -t - | FileCheck %s
|
||||
|
||||
CHECK: [ 0](sec 0)(fl 0x00)(ty 0)(scl 69) (nx 1) 0x00000000 Function
|
||||
CHECK: AUX tagndx 9 type 2
|
||||
|
@ -653,6 +653,12 @@ void llvm::printCOFFSymbolTable(const COFFObjectFile *coff) {
|
||||
|
||||
SI = SI + Symbol->getNumberOfAuxSymbols();
|
||||
break;
|
||||
} else if (Symbol->isWeakExternal()) {
|
||||
const coff_aux_weak_external *awe;
|
||||
error(coff->getAuxSymbol<coff_aux_weak_external>(SI + 1, awe));
|
||||
|
||||
outs() << "AUX " << format("tagndx %d type %d\n", awe->TagIndex,
|
||||
awe->Characteristics);
|
||||
} else {
|
||||
outs() << "AUX Unknown\n";
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user