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@gentoo.org>
This commit is contained in:
Andrew Ammerlaan
2024-10-01 20:34:43 +02:00
parent f87840879e
commit dec7ddaabb

View File

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