diff mbox series

scripts/get_default_envs.sh: Update for thin archive support

Message ID 20210621201418.132570-1-trini@konsulko.com
State Accepted
Commit 963fde31559f50ceb4f5965f00d79f8747a9d217
Delegated to: Tom Rini
Headers show
Series scripts/get_default_envs.sh: Update for thin archive support | expand

Commit Message

Tom Rini June 21, 2021, 8:14 p.m. UTC
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>
---
 scripts/get_default_envs.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Tom Rini July 15, 2021, 1:28 a.m. UTC | #1
On Mon, Jun 21, 2021 at 04:14:18PM -0400, Tom Rini wrote:

> 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>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/scripts/get_default_envs.sh b/scripts/get_default_envs.sh
index d1f2ce4d5c51..3c6fdc45e11f 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