[llvm] r219228 - llvm-readobj: add support to dump (COFF) directives
Saleem Abdulrasool
compnerd at compnerd.org
Tue Oct 7 20:30:43 PDT 2014
On Tue, Oct 7, 2014 at 7:16 PM, Rui Ueyama <ruiu at google.com> wrote:
> Added a test in r219274.
>
Sorry, I didn't see the response earlier. Thanks for adding that!
> On Tue, Oct 7, 2014 at 12:55 PM, Rui Ueyama <ruiu at google.com> wrote:
>
>> Nice. Can you add a test?
>>
>> On Tue, Oct 7, 2014 at 12:37 PM, Saleem Abdulrasool <
>> compnerd at compnerd.org> wrote:
>>
>>> Author: compnerd
>>> Date: Tue Oct 7 14:37:52 2014
>>> New Revision: 219228
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=219228&view=rev
>>> Log:
>>> llvm-readobj: add support to dump (COFF) directives
>>>
>>> PE/COFF has a special section (.drectve) which can be used to pass
>>> options to
>>> the linker (similar to LC_LINKER_OPTION). Add support to llvm-readobj
>>> to print
>>> the contents of the section for tests.
>>>
>>> Modified:
>>> llvm/trunk/tools/llvm-readobj/COFFDumper.cpp
>>> llvm/trunk/tools/llvm-readobj/ObjDumper.h
>>> llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp
>>>
>>> Modified: llvm/trunk/tools/llvm-readobj/COFFDumper.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/COFFDumper.cpp?rev=219228&r1=219227&r2=219228&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/tools/llvm-readobj/COFFDumper.cpp (original)
>>> +++ llvm/trunk/tools/llvm-readobj/COFFDumper.cpp Tue Oct 7 14:37:52 2014
>>> @@ -56,6 +56,7 @@ public:
>>> void printDynamicSymbols() override;
>>> void printUnwindInfo() override;
>>> void printCOFFImports() override;
>>> + void printCOFFDirectives() override;
>>>
>>> private:
>>> void printSymbol(const SymbolRef &Sym);
>>> @@ -932,3 +933,21 @@ void COFFDumper::printCOFFImports() {
>>> printImportedSymbols(I->imported_symbol_begin(),
>>> I->imported_symbol_end());
>>> }
>>> }
>>> +
>>> +void COFFDumper::printCOFFDirectives() {
>>> + for (const SectionRef &Section : Obj->sections()) {
>>> + StringRef Contents;
>>> + StringRef Name;
>>> +
>>> + if (error(Section.getName(Name)))
>>> + continue;
>>> + if (Name != ".drectve")
>>> + continue;
>>> +
>>> + if (error(Section.getContents(Contents)))
>>> + return;
>>> +
>>> + W.printString("Directive(s)", Contents);
>>> + }
>>> +}
>>> +
>>>
>>> Modified: llvm/trunk/tools/llvm-readobj/ObjDumper.h
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/ObjDumper.h?rev=219228&r1=219227&r2=219228&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/tools/llvm-readobj/ObjDumper.h (original)
>>> +++ llvm/trunk/tools/llvm-readobj/ObjDumper.h Tue Oct 7 14:37:52 2014
>>> @@ -45,6 +45,7 @@ public:
>>>
>>> // Only implemented for PE/COFF.
>>> virtual void printCOFFImports() { }
>>> + virtual void printCOFFDirectives() { }
>>>
>>> protected:
>>> StreamWriter& W;
>>>
>>> Modified: llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp?rev=219228&r1=219227&r2=219228&view=diff
>>>
>>> ==============================================================================
>>> --- llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp (original)
>>> +++ llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp Tue Oct 7 14:37:52
>>> 2014
>>> @@ -145,6 +145,11 @@ namespace opts {
>>> // -coff-imports
>>> cl::opt<bool>
>>> COFFImports("coff-imports", cl::desc("Display the PE/COFF import
>>> table"));
>>> +
>>> + // -coff-directives
>>> + cl::opt<bool>
>>> + COFFDirectives("coff-directives",
>>> + cl::desc("Display the contents PE/COFF .drectve
>>> section"));
>>> } // namespace opts
>>>
>>> static int ReturnValue = EXIT_SUCCESS;
>>> @@ -272,6 +277,8 @@ static void dumpObject(const ObjectFile
>>> Dumper->printMipsPLTGOT();
>>> if (opts::COFFImports)
>>> Dumper->printCOFFImports();
>>> + if (opts::COFFDirectives)
>>> + Dumper->printCOFFDirectives();
>>> }
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>
>>
>>
>
--
Saleem Abdulrasool
compnerd (at) compnerd (dot) org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141007/b47e1481/attachment.html>
More information about the llvm-commits
mailing list