diff options
-rw-r--r-- | meta/classes/populate_sdk_base.bbclass | 5 | ||||
-rw-r--r-- | meta/files/toolchain-shar-relocate.sh | 2 | ||||
-rwxr-xr-x | scripts/relocate_sdk.py | 17 |
3 files changed, 10 insertions, 14 deletions
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index 7ffaf84a45..e27ee036a2 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass @@ -161,11 +161,6 @@ do_populate_sdk[stamp-extra-info] = "${MACHINE_ARCH}${SDKMACHINE}" fakeroot create_sdk_files() { cp ${COREBASE}/scripts/relocate_sdk.py ${SDK_OUTPUT}/${SDKPATH}/ - - # Replace the ##DEFAULT_INSTALL_DIR## with the correct pattern. - # Escape special characters like '+' and '.' in the SDKPATH - escaped_sdkpath=$(echo ${SDKPATH} |sed -e "s:[\+\.]:\\\\\\\\\0:g") - sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py } python check_sdk_sysroots() { diff --git a/meta/files/toolchain-shar-relocate.sh b/meta/files/toolchain-shar-relocate.sh index e3c10018ef..f82ff2be48 100644 --- a/meta/files/toolchain-shar-relocate.sh +++ b/meta/files/toolchain-shar-relocate.sh @@ -36,7 +36,7 @@ if [ x\${PYTHON} = "x" ]; then echo "SDK could not be relocated. No python found." exit 1 fi -\${PYTHON} ${env_setup_script%/*}/relocate_sdk.py $target_sdk_dir $dl_path $executable_files +\${PYTHON} ${env_setup_script%/*}/relocate_sdk.py $DEFAULT_INSTALL_DIR $target_sdk_dir $dl_path $executable_files EOF $SUDO_EXEC mv $tdir/relocate_sdk.sh ${env_setup_script%/*}/relocate_sdk.sh diff --git a/scripts/relocate_sdk.py b/scripts/relocate_sdk.py index c752fa2c61..0d5a6f5161 100755 --- a/scripts/relocate_sdk.py +++ b/scripts/relocate_sdk.py @@ -38,8 +38,6 @@ else: def b(x): return x.encode(sys.getfilesystemencoding()) -old_prefix = re.compile(b("##DEFAULT_INSTALL_DIR##")) - def get_arch(): f.seek(0) e_ident =f.read(16) @@ -212,19 +210,22 @@ def change_dl_sysdirs(elf_file_name): f.write(sysdirslen) # MAIN -if len(sys.argv) < 4: +if len(sys.argv) < 5: sys.exit(-1) # In python > 3, strings may also contain Unicode characters. So, convert # them to bytes if sys.version_info < (3,): - new_prefix = sys.argv[1] - new_dl_path = sys.argv[2] + new_prefix = sys.argv[2] + new_dl_path = sys.argv[3] else: - new_prefix = sys.argv[1].encode() - new_dl_path = sys.argv[2].encode() + new_prefix = sys.argv[2].encode() + new_dl_path = sys.argv[3].encode() + +executables_list = sys.argv[4:] -executables_list = sys.argv[3:] +old_prefix_ne = b(sys.argv[1]) +old_prefix = re.compile(re.escape(old_prefix_ne)); for e in executables_list: perms = os.stat(e)[stat.ST_MODE] |