Merge {first,last}-section-in-segment.c
[centaur.git] / src / elfops / last-section-in-segment.c
diff --git a/src/elfops/last-section-in-segment.c b/src/elfops/last-section-in-segment.c
deleted file mode 100644 (file)
index 53323f6..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <libelf.h>
-#include <gelf.h>
-
-#include <libelfu/libelfu.h>
-
-
-/*
- * Returns the first section that  is contained in the segment and
- * ends as close to its memory image of as possible (the "last"
- * section in the segment).
- *
- * If no section fits, NULL is returned.
- */
-Elf_Scn* elfu_lastSectionInSegment(Elf *e, GElf_Phdr *phdr)
-{
-  Elf_Scn *last = NULL;
-  Elf_Scn *scn;
-
-
-  scn = elf_getscn(e, 1);
-  while (scn) {
-    GElf_Shdr shdr;
-
-    if (gelf_getshdr(scn, &shdr) != &shdr) {
-      fprintf(stderr, "gelf_getshdr() failed: %s\n", elf_errmsg(-1));
-      continue;
-    }
-
-    if (elfu_segmentContainsSection(phdr, &shdr)) {
-      if (!last) {
-        last = scn;
-      } else {
-        GElf_Shdr shdrOld;
-
-        if (gelf_getshdr(last, &shdrOld) != &shdrOld) {
-          continue;
-        }
-
-        if (shdr.sh_offset + shdr.sh_size
-            > shdrOld.sh_offset + shdrOld.sh_size) {
-          // TODO: Check (leftover space in memory image) < (p_align)
-          last = scn;
-        }
-      }
-    }
-
-    scn = elf_nextscn(e, scn);
-  }
-
-  return last;
-}