[lld] r212765 - [PECOFF] Set resource table entry in header.

Rui Ueyama ruiu at google.com
Thu Jul 10 14:43:20 PDT 2014


Author: ruiu
Date: Thu Jul 10 16:43:19 2014
New Revision: 212765

URL: http://llvm.org/viewvc/llvm-project?rev=212765&view=rev
Log:
[PECOFF] Set resource table entry in header.

The resource table entry should have the RVA of the
embedded resource file.

Modified:
    lld/trunk/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
    lld/trunk/test/pecoff/resource.test

Modified: lld/trunk/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp?rev=212765&r1=212764&r2=212765&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp (original)
+++ lld/trunk/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp Thu Jul 10 16:43:19 2014
@@ -981,6 +981,9 @@ void PECOFFWriter::build(const File &lin
     if (section->getSectionName() == ".pdata")
       dataDirectory->setField(DataDirectoryIndex::EXCEPTION_TABLE,
                               section->getVirtualAddress(), section->size());
+    if (section->getSectionName() == ".rsrc")
+      dataDirectory->setField(DataDirectoryIndex::RESOURCE_TABLE,
+                              section->getVirtualAddress(), section->size());
     if (section->getSectionName() == ".idata.a")
       dataDirectory->setField(DataDirectoryIndex::IAT,
                               section->getVirtualAddress(), section->size());

Modified: lld/trunk/test/pecoff/resource.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/resource.test?rev=212765&r1=212764&r2=212765&view=diff
==============================================================================
--- lld/trunk/test/pecoff/resource.test (original)
+++ lld/trunk/test/pecoff/resource.test Thu Jul 10 16:43:19 2014
@@ -13,3 +13,10 @@
 
 # Multiple resource files are concatenated.
 # RUN: cat %t.exe | grep 'H.e.l.l.o.H.e.l.l.o.'
+
+# RUN: lld -flavor link /out:%t.exe /subsystem:console /entry:start /opt:noref \
+# RUN:   /manifest:embed -- %t.obj %p/Inputs/resource.res
+# RUN: llvm-readobj -file-headers %t.exe | FileCheck %s
+
+CHECK: ResourceTableRVA: 0x1000
+CHECK: ResourceTableSize: 0x208





More information about the llvm-commits mailing list