relocate_sdk: Skip to do relocation if the file size is less than 64 byte

When toolchain directory is changed to execute mode, some non-executable
files or empty files are sorted. This will lead to the below error:

	Extracting SDK...done
	Setting it up...Traceback (most recent call last):
	  File "..._SDK/relocate_sdk.py", line 208, in <module>
	    arch = get_arch()
	  File "..._SDK/relocate_sdk.py", line 39, in get_arch
	    ei_mag0,ei_mag1_3,ei_class = struct.unpack("<B3sB11x", e_ident)
	struct.error: unpack requires a string argument of length 16

To call get_arch and parse_elf_header, we should ensure the sorted file
is bigger than 64 byte.

(From OE-Core rev: 3b973f1c9c9ee3fbe64903036ad93eb9e928b185)

Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Roy Li 2014-06-17 14:00:26 +08:00 committed by Richard Purdie
parent 9f7d599a19
commit ee0f647a2a
1 changed files with 6 additions and 6 deletions

View File

@ -224,12 +224,12 @@ for e in executables_list:
# Save old size and do a size check at the end. Just a safety measure.
old_size = os.path.getsize(e)
arch = get_arch()
if arch:
parse_elf_header()
change_interpreter(e)
change_dl_sysdirs()
if old_size >= 64:
arch = get_arch()
if arch:
parse_elf_header()
change_interpreter(e)
change_dl_sysdirs()
""" change permissions back """
if perms: