summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2013-06-08 03:59:00 +0000
committerRui Ueyama <ruiu@google.com>2013-06-08 03:59:00 +0000
commiteb0cc96e4b0a1d6f36a00d92b82dc58a97f4bcd2 (patch)
tree1fee4f3fb56521f5dd64ef44516a18747ddc2ca1 /lld/lib/ReaderWriter
parent7b5592bc0b75f04293768a92f4db01a703b82ce0 (diff)
downloadbcm5719-llvm-eb0cc96e4b0a1d6f36a00d92b82dc58a97f4bcd2.tar.gz
bcm5719-llvm-eb0cc96e4b0a1d6f36a00d92b82dc58a97f4bcd2.zip
[PECOFF][Driver] Add -stack command line option.
llvm-svn: 183604
Diffstat (limited to 'lld/lib/ReaderWriter')
-rw-r--r--lld/lib/ReaderWriter/PECOFF/PECOFFTargetInfo.cpp7
-rw-r--r--lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp4
2 files changed, 9 insertions, 2 deletions
diff --git a/lld/lib/ReaderWriter/PECOFF/PECOFFTargetInfo.cpp b/lld/lib/ReaderWriter/PECOFF/PECOFFTargetInfo.cpp
index 516479e65d5..a4c3e7ec4ab 100644
--- a/lld/lib/ReaderWriter/PECOFF/PECOFFTargetInfo.cpp
+++ b/lld/lib/ReaderWriter/PECOFF/PECOFFTargetInfo.cpp
@@ -23,6 +23,13 @@ error_code PECOFFTargetInfo::parseFile(
}
bool PECOFFTargetInfo::validate(raw_ostream &diagnostics) {
+ if (_stackReserve < _stackCommit) {
+ diagnostics << "Invalid stack size: reserve size must be equal to or "
+ << "greater than commit size, but got "
+ << _stackCommit << " and " << _stackReserve << ".\n";
+ return true;
+ }
+
_reader = createReaderPECOFF(*this);
_writer = createWriterPECOFF(*this);
return false;
diff --git a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
index af54e275f45..f8e4ae9f13d 100644
--- a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
+++ b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
@@ -155,8 +155,8 @@ public:
| llvm::COFF::IMAGE_DLL_CHARACTERISTICS_NX_COMPAT
| llvm::COFF::IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE;
- _peHeader.SizeOfStackReserve = 0x100000;
- _peHeader.SizeOfStackCommit = 0x1000;
+ _peHeader.SizeOfStackReserve = targetInfo.getStackReserve();
+ _peHeader.SizeOfStackCommit = targetInfo.getStackCommit();
_peHeader.SizeOfHeapReserve = 0x100000;
_peHeader.SizeOfHeapCommit = 0x1000;
OpenPOWER on IntegriCloud