Index: chrome/nacl/nacl_helper_bootstrap_munge_phdr.py |
diff --git a/chrome/nacl/nacl_helper_bootstrap_munge_phdr.py b/chrome/nacl/nacl_helper_bootstrap_munge_phdr.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..c3a3931b2485c31670cecd2ed6a021b39a4b3641 |
--- /dev/null |
+++ b/chrome/nacl/nacl_helper_bootstrap_munge_phdr.py |
@@ -0,0 +1,36 @@ |
+#!/usr/bin/python |
+# 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 takes three command-line arguments: |
+# MUNGE-PHDR-PROGRAM file name of program built from |
+# nacl_helper_bootstrap_munge_phdr.c |
+# INFILE raw linked ELF file name |
+# OUTFILE output file name |
+# |
+# We just run the MUNGE-PHDR-PROGRAM on a copy of INFILE. |
+# That modifies the file in place. Then we move it to OUTFILE. |
+# |
+# We only have this wrapper script because nacl_helper_bootstrap_munge_phdr.c |
+# wants to modify a file in place (and it would be a much longer and more |
+# fragile program if it created a fresh ELF output file instead). |
+ |
+import shutil |
+import subprocess |
+import sys |
+ |
+ |
+def Main(argv): |
+ if len(argv) != 4: |
+ print 'Usage: %s MUNGE-PHDR-PROGRAM INFILE OUTFILE' % argv[0] |
+ sys.exit(1) |
+ [prog, munger, infile, outfile] = argv |
+ tmpfile = outfile + '.tmp' |
+ shutil.copy(infile, tmpfile) |
+ segment_num = '1' |
+ subprocess.check_call([munger, tmpfile, segment_num]) |
+ shutil.move(tmpfile, outfile) |
+ |
+if __name__ == '__main__': |
+ Main(sys.argv) |