| 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)
|
|
|