commit: dec7ddaabb47c81ecddc603fb2819c4c4f5066ea Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> AuthorDate: Tue Oct 1 18:34:43 2024 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> CommitDate: Thu Oct 10 14:46:47 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dec7ddaa
kernel-install.eclass: fix objcopy overwriting uki >From the manual: If you do not specify outfile, objcopy creates a temporary file and destructively renames the result with the name of infile. We don't want that. Unfortunately we cannot use /dev/null as dump, objcopy complains, so we dump it in T instead. Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org> eclass/kernel-install.eclass | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass index c5f218a46b91..29abb9b419e6 100644 --- a/eclass/kernel-install.eclass +++ b/eclass/kernel-install.eclass @@ -650,7 +650,10 @@ kernel-install_extract_from_uki() { local uki=${2} local out=${3} - $(tc-getOBJCOPY) "${uki}" --dump-section ".${extract_type}=${out}" || + # objcopy overwrites input if there is no output, dump the output in T. + # We unfortunately cannot use /dev/null here + $(tc-getOBJCOPY) "${uki}" "${T}/dump.efi" \ + --dump-section ".${extract_type}=${out}" || die "Failed to extract ${extract_type}" chmod 644 "${out}" || die }