[llvm] r270648 - llvm-objdump: support dumping AUX records for weak externals
Saleem Abdulrasool via llvm-commits
llvm-commits at lists.llvm.org
Tue May 24 18:59:33 PDT 2016
Author: compnerd
Date: Tue May 24 20:59:32 2016
New Revision: 270648
URL: http://llvm.org/viewvc/llvm-project?rev=270648&view=rev
Log:
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).
Added:
llvm/trunk/test/Object/Inputs/COFF/weak-externals.yaml
llvm/trunk/test/Object/coff-weak-externals.test
Modified:
llvm/trunk/tools/llvm-objdump/COFFDump.cpp
Added: llvm/trunk/test/Object/Inputs/COFF/weak-externals.yaml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/Inputs/COFF/weak-externals.yaml?rev=270648&view=auto
==============================================================================
--- llvm/trunk/test/Object/Inputs/COFF/weak-externals.yaml (added)
+++ llvm/trunk/test/Object/Inputs/COFF/weak-externals.yaml Tue May 24 20:59:32 2016
@@ -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
+...
Added: llvm/trunk/test/Object/coff-weak-externals.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/coff-weak-externals.test?rev=270648&view=auto
==============================================================================
--- llvm/trunk/test/Object/coff-weak-externals.test (added)
+++ llvm/trunk/test/Object/coff-weak-externals.test Tue May 24 20:59:32 2016
@@ -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
+
Modified: llvm/trunk/tools/llvm-objdump/COFFDump.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/COFFDump.cpp?rev=270648&r1=270647&r2=270648&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objdump/COFFDump.cpp (original)
+++ llvm/trunk/tools/llvm-objdump/COFFDump.cpp Tue May 24 20:59:32 2016
@@ -653,6 +653,12 @@ void llvm::printCOFFSymbolTable(const CO
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";
}
More information about the llvm-commits
mailing list