[PATCH] D23538: [ELF] Allow specifying the stack size
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 16 13:35:22 PDT 2016
ruiu accepted this revision.
ruiu added a comment.
This revision is now accepted and ready to land.
LGTM with nits.
================
Comment at: ELF/Config.h:117
@@ -116,2 +116,3 @@
bool ZRelro;
+ uint64_t ZStackSize = -1;
UnresolvedPolicy UnresolvedSymbols;
----------------
Sort.
================
Comment at: ELF/Driver.cpp:260
@@ +259,3 @@
+static Optional<StringRef>
+hasZOptionValue(opt::InputArgList &Args, StringRef Key) {
+ for (auto *Arg : Args.filtered(OPT_z)) {
----------------
`getZOptionValue` would be a better name because this function returns a value.
================
Comment at: ELF/Driver.cpp:264-265
@@ +263,4 @@
+ size_t Pos = Value.find("=");
+ if (Pos != StringRef::npos) {
+ if (Key == Value.substr(0, Pos))
+ return Value.substr(Pos + 1);
----------------
You can merge the two `if`s.
================
Comment at: ELF/Driver.cpp:413
@@ -399,1 +412,3 @@
+ if (Optional<StringRef> Value = hasZOptionValue(Args, "stack-size")) {
+ if (Value->getAsInteger(0, Config->ZStackSize))
----------------
Nit: remove {}.
================
Comment at: test/ELF/zstack-size.s:11-47
@@ +10,39 @@
+# CHECK: ProgramHeaders [
+# CHECK-NEXT: ProgramHeader {
+# CHECK-NEXT: Type: PT_PHDR (0x6)
+# CHECK-NEXT: Offset: 0x40
+# CHECK-NEXT: VirtualAddress: 0x10040
+# CHECK-NEXT: PhysicalAddress: 0x10040
+# CHECK-NEXT: FileSize: 224
+# CHECK-NEXT: MemSize: 224
+# CHECK-NEXT: Flags [ (0x4)
+# CHECK-NEXT: PF_R (0x4)
+# CHECK-NEXT: ]
+# CHECK-NEXT: Alignment: 8
+# CHECK-NEXT: }
+# CHECK-NEXT: ProgramHeader {
+# CHECK-NEXT: Type: PT_LOAD (0x1)
+# CHECK-NEXT: Offset: 0x0
+# CHECK-NEXT: VirtualAddress: 0x10000
+# CHECK-NEXT: PhysicalAddress: 0x10000
+# CHECK-NEXT: FileSize: 288
+# CHECK-NEXT: MemSize: 288
+# CHECK-NEXT: Flags [ (0x4)
+# CHECK-NEXT: PF_R (0x4)
+# CHECK-NEXT: ]
+# CHECK-NEXT: Alignment: 4096
+# CHECK-NEXT: }
+# CHECK-NEXT: ProgramHeader {
+# CHECK-NEXT: Type: PT_LOAD (0x1)
+# CHECK-NEXT: Offset: 0x1000
+# CHECK-NEXT: VirtualAddress: 0x11000
+# CHECK-NEXT: PhysicalAddress: 0x11000
+# CHECK-NEXT: FileSize: 1
+# CHECK-NEXT: MemSize: 1
+# CHECK-NEXT: Flags [ (0x5)
+# CHECK-NEXT: PF_R (0x4)
+# CHECK-NEXT: PF_X (0x1)
+# CHECK-NEXT: ]
+# CHECK-NEXT: Alignment: 4096
+# CHECK-NEXT: }
+# CHECK-NEXT: ProgramHeader {
----------------
These program headers are not relevant, so please remove.
https://reviews.llvm.org/D23538
More information about the llvm-commits
mailing list