| 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..66f39fdf8afa27cc4be8052f0e63bb79a6bf7c89
|
| --- /dev/null
|
| +++ b/chrome/nacl/nacl_helper_bootstrap_munge_phdr.py
|
| @@ -0,0 +1,39 @@
|
| +#!/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 optparse
|
| +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)
|
| + result = subprocess.call([munger, tmpfile, '1'])
|
| + if result != 0:
|
| + print '%s failed with %d' % (munger, result)
|
| + sys.exit(result)
|
| + shutil.move(tmpfile, outfile)
|
| +
|
| +if __name__ == '__main__':
|
| + Main(sys.argv)
|
|
|