aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Wessel <jason.wessel@windriver.com>2013-02-12 05:08:23 -0600
committerRoss Burton <ross.burton@intel.com>2013-04-23 10:39:50 +0100
commit9a5ed565758a6fcc94bc85ce6205375d2fd282ea (patch)
tree9c19408063928a1e60f385f2a4aa12d7b97e1b58
parent4142f6f9392fdd919488151170fb088d4113e0f2 (diff)
downloadopenembedded-core-9a5ed565758a6fcc94bc85ce6205375d2fd282ea.zip
openembedded-core-9a5ed565758a6fcc94bc85ce6205375d2fd282ea.tar.gz
openembedded-core-9a5ed565758a6fcc94bc85ce6205375d2fd282ea.tar.bz2
relocate_sdk.py: allow relocate_sdk.py to work with python 2.4.x
Avoid the chicken / egg problem of an SDK that provides a working python but requires that version of python to extract itself. The RHEL 5.x systems and some other enterprise Linux systems ship with python 2.4.x as the default python. We need to at least be able to extract work executables even if we never use the the host provided python again. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xscripts/relocate_sdk.py26
1 files changed, 13 insertions, 13 deletions
diff --git a/scripts/relocate_sdk.py b/scripts/relocate_sdk.py
index 45d2c24..1d7bbb3 100755
--- a/scripts/relocate_sdk.py
+++ b/scripts/relocate_sdk.py
@@ -55,22 +55,22 @@ def parse_elf_header():
if arch == 32:
# 32bit
- hdr_struct = struct.Struct("<HHILLLIHHHHHH")
+ hdr_fmt = "<HHILLLIHHHHHH"
hdr_size = 52
else:
# 64bit
- hdr_struct = struct.Struct("<HHIQQQIHHHHHH")
+ hdr_fmt = "<HHIQQQIHHHHHH"
hdr_size = 64
e_type, e_machine, e_version, e_entry, e_phoff, e_shoff, e_flags,\
e_ehsize, e_phentsize, e_phnum, e_shentsize, e_shnum, e_shstrndx =\
- hdr_struct.unpack(elf_header[16:hdr_size])
+ struct.unpack(hdr_fmt, elf_header[16:hdr_size])
def change_interpreter(elf_file_name):
if arch == 32:
- ph_struct = struct.Struct("<IIIIIIII")
+ ph_fmt = "<IIIIIIII"
else:
- ph_struct = struct.Struct("<IIQQQQQQ")
+ ph_fmt = "<IIQQQQQQ"
""" look for PT_INTERP section """
for i in range(0,e_phnum):
@@ -79,11 +79,11 @@ def change_interpreter(elf_file_name):
if arch == 32:
# 32bit
p_type, p_offset, p_vaddr, p_paddr, p_filesz,\
- p_memsz, p_flags, p_align = ph_struct.unpack(ph_hdr)
+ p_memsz, p_flags, p_align = struct.unpack(ph_fmt, ph_hdr)
else:
# 64bit
p_type, p_flags, p_offset, p_vaddr, p_paddr, \
- p_filesz, p_memsz, p_align = ph_struct.unpack(ph_hdr)
+ p_filesz, p_memsz, p_align = struct.unpack(ph_fmt, ph_hdr)
""" change interpreter """
if p_type == 3:
@@ -104,9 +104,9 @@ def change_interpreter(elf_file_name):
def change_dl_sysdirs():
if arch == 32:
- sh_struct = struct.Struct("<IIIIIIIIII")
+ sh_fmt = "<IIIIIIIIII"
else:
- sh_struct = struct.Struct("<IIQQQQIIQQ")
+ sh_fmt = "<IIQQQQIIQQ"
""" read section string table """
f.seek(e_shoff + e_shstrndx * e_shentsize)
@@ -127,7 +127,7 @@ def change_dl_sysdirs():
sh_hdr = f.read(e_shentsize)
sh_name, sh_type, sh_flags, sh_addr, sh_offset, sh_size, sh_link,\
- sh_info, sh_addralign, sh_entsize = sh_struct.unpack(sh_hdr)
+ sh_info, sh_addralign, sh_entsize = struct.unpack(sh_fmt, sh_hdr)
name = sh_strtab[sh_name:sh_strtab.find("\0", sh_name)]
@@ -181,7 +181,7 @@ def change_dl_sysdirs():
# MAIN
if len(sys.argv) < 4:
- exit(-1)
+ sys.exit(-1)
new_prefix = sys.argv[1]
new_dl_path = sys.argv[2]
@@ -196,14 +196,14 @@ for e in executables_list:
try:
f = open(e, "r+b")
- except IOError as ioex:
+ except IOError, ioex:
if ioex.errno == errno.ETXTBSY:
print("Could not open %s. File used by another process.\nPlease "\
"make sure you exit all processes that might use any SDK "\
"binaries." % e)
else:
print("Could not open %s: %s(%d)" % (e, ioex.strerror, ioex.errno))
- exit(-1)
+ sys.exit(-1)
arch = get_arch()
if arch: