[llvm] r219228 - llvm-readobj: add support to dump (COFF) directives
Rui Ueyama
ruiu at google.com
Tue Oct 7 12:55:28 PDT 2014
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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141007/d5f444ad/attachment.html>
More information about the llvm-commits
mailing list