summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/populate_sdk_base.bbclass5
-rw-r--r--meta/files/toolchain-shar-relocate.sh2
-rwxr-xr-xscripts/relocate_sdk.py17
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}"
161 161
162fakeroot create_sdk_files() { 162fakeroot create_sdk_files() {
163 cp ${COREBASE}/scripts/relocate_sdk.py ${SDK_OUTPUT}/${SDKPATH}/ 163 cp ${COREBASE}/scripts/relocate_sdk.py ${SDK_OUTPUT}/${SDKPATH}/
164
165 # Replace the ##DEFAULT_INSTALL_DIR## with the correct pattern.
166 # Escape special characters like '+' and '.' in the SDKPATH
167 escaped_sdkpath=$(echo ${SDKPATH} |sed -e "s:[\+\.]:\\\\\\\\\0:g")
168 sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py
169} 164}
170 165
171python check_sdk_sysroots() { 166python 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
36 echo "SDK could not be relocated. No python found." 36 echo "SDK could not be relocated. No python found."
37 exit 1 37 exit 1
38fi 38fi
39\${PYTHON} ${env_setup_script%/*}/relocate_sdk.py $target_sdk_dir $dl_path $executable_files 39\${PYTHON} ${env_setup_script%/*}/relocate_sdk.py $DEFAULT_INSTALL_DIR $target_sdk_dir $dl_path $executable_files
40EOF 40EOF
41 41
42$SUDO_EXEC mv $tdir/relocate_sdk.sh ${env_setup_script%/*}/relocate_sdk.sh 42$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:
38 def b(x): 38 def b(x):
39 return x.encode(sys.getfilesystemencoding()) 39 return x.encode(sys.getfilesystemencoding())
40 40
41old_prefix = re.compile(b("##DEFAULT_INSTALL_DIR##"))
42
43def get_arch(): 41def get_arch():
44 f.seek(0) 42 f.seek(0)
45 e_ident =f.read(16) 43 e_ident =f.read(16)
@@ -212,19 +210,22 @@ def change_dl_sysdirs(elf_file_name):
212 f.write(sysdirslen) 210 f.write(sysdirslen)
213 211
214# MAIN 212# MAIN
215if len(sys.argv) < 4: 213if len(sys.argv) < 5:
216 sys.exit(-1) 214 sys.exit(-1)
217 215
218# In python > 3, strings may also contain Unicode characters. So, convert 216# In python > 3, strings may also contain Unicode characters. So, convert
219# them to bytes 217# them to bytes
220if sys.version_info < (3,): 218if sys.version_info < (3,):
221 new_prefix = sys.argv[1] 219 new_prefix = sys.argv[2]
222 new_dl_path = sys.argv[2] 220 new_dl_path = sys.argv[3]
223else: 221else:
224 new_prefix = sys.argv[1].encode() 222 new_prefix = sys.argv[2].encode()
225 new_dl_path = sys.argv[2].encode() 223 new_dl_path = sys.argv[3].encode()
224
225executables_list = sys.argv[4:]
226 226
227executables_list = sys.argv[3:] 227old_prefix_ne = b(sys.argv[1])
228old_prefix = re.compile(re.escape(old_prefix_ne));
228 229
229for e in executables_list: 230for e in executables_list:
230 perms = os.stat(e)[stat.ST_MODE] 231 perms = os.stat(e)[stat.ST_MODE]