[PATCH] D24294: [ELF] - Implemented --section-start, -Ttext, -Tdata, -Tbss options.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 7 14:59:15 PDT 2016


ruiu added inline comments.

================
Comment at: ELF/Config.h:67
@@ -66,2 +66,3 @@
   InputFile *FirstElf = nullptr;
+  llvm::StringMap<uint64_t> SectionStartList;
   llvm::StringRef DynamicLinker;
----------------
This is not a list but a map.

================
Comment at: ELF/Driver.cpp:375
@@ -374,1 +374,3 @@
 
+static uint64_t readSectionAddress(StringRef S) {
+  uint64_t VA = 0;
----------------
read -> parse to be consistent with `parseEmulation`.

================
Comment at: ELF/Driver.cpp:380
@@ +379,3 @@
+  if (S.getAsInteger(16, VA))
+    error("invalid argument for --section-start/-Tbss/-Tdata/-Ttext");
+  return VA;
----------------
  -Ttext: " + S);

================
Comment at: ELF/Driver.cpp:384-385
@@ +383,4 @@
+
+static llvm::StringMap<uint64_t> getSectionStartList(opt::InputArgList &Args) {
+  llvm::StringMap<uint64_t> Ret;
+  for (auto *Arg : Args.filtered(OPT_section_start)) {
----------------
Remove `llvm::`.

================
Comment at: ELF/Driver.cpp:393-398
@@ +392,8 @@
+
+  if (Args.hasArg(OPT_Ttext))
+    Ret[".text"] = readSectionAddress(getString(Args, OPT_Ttext));
+  if (Args.hasArg(OPT_Tdata))
+    Ret[".data"] = readSectionAddress(getString(Args, OPT_Tdata));
+  if (Args.hasArg(OPT_Tbss))
+    Ret[".bss"] = readSectionAddress(getString(Args, OPT_Tbss));
+  return Ret;
----------------
  if (auto *Arg = Args.getLastArg(...))
    Ret[...] = readSectionAddress(Arg->getValue());


https://reviews.llvm.org/D24294





More information about the llvm-commits mailing list