summaryrefslogtreecommitdiff
path: root/scripts/get_default_envs.sh
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2021-06-21 23:14:18 +0300
committerTom Rini <trini@konsulko.com>2021-07-14 23:57:35 +0300
commit963fde31559f50ceb4f5965f00d79f8747a9d217 (patch)
tree29f4a7db27669fac1ea7b7eb8821b5440b09af0d /scripts/get_default_envs.sh
parent2a2896b17fa47168b87590a1e9b42765c598e3c7 (diff)
downloadu-boot-963fde31559f50ceb4f5965f00d79f8747a9d217.tar.xz
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>
Diffstat (limited to 'scripts/get_default_envs.sh')
-rwxr-xr-xscripts/get_default_envs.sh5
1 files changed, 3 insertions, 2 deletions
diff --git a/scripts/get_default_envs.sh b/scripts/get_default_envs.sh
index d1f2ce4d5c..3c6fdc45e1 100755
--- a/scripts/get_default_envs.sh
+++ b/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