Kaynağa Gözat

scripts/get_default_envs.sh: Update for thin archive support

This script was broken by the change to default archives for linking.
This is due to objcopy specifically disallowing copying of thin
archives.  To fix this and re-support external users of this script,
switch to using the same logic the u-boot-initial-env make target uses
to dump the section from the object file.

Reported-by: Jan Kiszka <jan.kiszka@web.de>
Fixes: 958f2e57eff7 ("build: use thin archives instead of incremental linking")
Signed-off-by: Tom Rini <trini@konsulko.com>
Tom Rini 2 yıl önce
ebeveyn
işleme
963fde3155
1 değiştirilmiş dosya ile 3 ekleme ve 2 silme
  1. 3 2
      scripts/get_default_envs.sh

+ 3 - 2
scripts/get_default_envs.sh

@@ -10,7 +10,7 @@ set -ue
 
 : "${OBJCOPY:=${CROSS_COMPILE:-}objcopy}"
 
-ENV_OBJ_FILE="built-in.o"
+ENV_OBJ_FILE="common.o"
 ENV_OBJ_FILE_COPY="copy_${ENV_OBJ_FILE}"
 
 echoerr() { echo "$@" 1>&2; }
@@ -32,7 +32,8 @@ cp ${env_obj_file_path} ${ENV_OBJ_FILE_COPY}
 # NOTE: objcopy saves its output to file passed in
 # (copy_${ENV_OBJ_FILE} in this case)
 
-${OBJCOPY} -O binary -j ".rodata.default_environment" ${ENV_OBJ_FILE_COPY}
+${OBJCOPY} --dump-section .rodata.default_environment=${ENV_OBJ_FILE_COPY} \
+	${env_obj_file_path}
 
 # Replace default '\0' with '\n' and sort entries
 tr '\0' '\n' < ${ENV_OBJ_FILE_COPY} | sort --field-separator== -k1,1 --stable