summaryrefslogtreecommitdiffstats
path: root/chrome/nacl/nacl_helper_bootstrap_munge_phdr.c
diff options
context:
space:
mode:
authormcgrathr@chromium.org <mcgrathr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-06 00:30:02 +0000
committermcgrathr@chromium.org <mcgrathr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-06 00:30:02 +0000
commit2e7efaf1ba5fc3ef21ff15c89ab45fade576707c (patch)
tree60fa697d8821b7273dbcb461e055d2b90c9c747c /chrome/nacl/nacl_helper_bootstrap_munge_phdr.c
parent00d41a8f6f4a844b97ef29ef9e55afb7faf20a64 (diff)
downloadchromium_src-2e7efaf1ba5fc3ef21ff15c89ab45fade576707c.zip
chromium_src-2e7efaf1ba5fc3ef21ff15c89ab45fade576707c.tar.gz
chromium_src-2e7efaf1ba5fc3ef21ff15c89ab45fade576707c.tar.bz2
Use nacl_helper_bootstrap from native_client repository
These sources have been moved over to the native_client repository. Remove them from chromium/src altogether and just make the gyp files refer to the native_client stuff. BUG= none TEST= linux still builds R=sehr@google.com,noelallen@chromium.org Review URL: http://codereview.chromium.org/8799016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113074 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/nacl/nacl_helper_bootstrap_munge_phdr.c')
-rw-r--r--chrome/nacl/nacl_helper_bootstrap_munge_phdr.c66
1 files changed, 0 insertions, 66 deletions
diff --git a/chrome/nacl/nacl_helper_bootstrap_munge_phdr.c b/chrome/nacl/nacl_helper_bootstrap_munge_phdr.c
deleted file mode 100644
index 87fe73f..0000000
--- a/chrome/nacl/nacl_helper_bootstrap_munge_phdr.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright (c) 2011 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- *
- * This is a trivial program to edit an ELF file in place, making
- * one crucial modification to a program header. It's invoked:
- * bootstrap_phdr_hacker FILENAME SEGMENT_NUMBER
- * where SEGMENT_NUMBER is the zero-origin index of the program header
- * we'll touch. This is a PT_LOAD with p_filesz of zero. We change its
- * p_filesz to match its p_memsz value.
- */
-
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <gelf.h>
-#include <libelf.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-int main(int argc, char **argv) {
- if (argc != 3)
- error(1, 0, "Usage: %s FILENAME SEGMENT_NUMBER", argv[0]);
-
- const char *const file = argv[1];
- const int segment = atoi(argv[2]);
-
- int fd = open(file, O_RDWR);
- if (fd < 0)
- error(2, errno, "Cannot open %s for read/write", file);
-
- if (elf_version(EV_CURRENT) == EV_NONE)
- error(2, 0, "elf_version: %s", elf_errmsg(-1));
-
- Elf *elf = elf_begin(fd, ELF_C_RDWR, NULL);
- if (elf == NULL)
- error(2, 0, "elf_begin: %s", elf_errmsg(-1));
-
- if (elf_flagelf(elf, ELF_C_SET, ELF_F_LAYOUT) == 0)
- error(2, 0, "elf_flagelf: %s", elf_errmsg(-1));
-
- GElf_Phdr phdr;
- GElf_Phdr *ph = gelf_getphdr(elf, segment, &phdr);
- if (ph == NULL)
- error(2, 0, "gelf_getphdr: %s", elf_errmsg(-1));
-
- if (ph->p_type != PT_LOAD)
- error(3, 0, "Program header %d is %u, not PT_LOAD",
- segment, (unsigned int) ph->p_type);
- if (ph->p_filesz != 0)
- error(3, 0, "Program header %d has nonzero p_filesz", segment);
-
- ph->p_filesz = ph->p_memsz;
- if (gelf_update_phdr(elf, segment, ph) == 0)
- error(2, 0, "gelf_update_phdr: %s", elf_errmsg(-1));
-
- if (elf_flagphdr(elf, ELF_C_SET, ELF_F_DIRTY) == 0)
- error(2, 0, "elf_flagphdr: %s", elf_errmsg(-1));
-
- if (elf_update(elf, ELF_C_WRITE) < 0)
- error(2, 0, "elf_update: %s", elf_errmsg(-1));
-
- close(fd);
-
- return 0;
-}