mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
wic/bootimg-efi: use cross objcopy when building unified kernel image
We can't rely on the host objcopy knowing how to process target binaries, so use the cross objcopy in the sysroot instead. Also construct the command argument-by-argument as the format expression was getting unwieldy. (From OE-Core rev: 0264aeedbf21e9e7a104243c11b3b57f00e38bda) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
195ea43f8f
commit
c9db415375
|
@ -326,21 +326,20 @@ class BootimgEFIPlugin(SourcePlugin):
|
|||
exec_cmd(install_cmd)
|
||||
|
||||
staging_dir_host = get_bitbake_var("STAGING_DIR_HOST")
|
||||
target_sys = get_bitbake_var("TARGET_SYS")
|
||||
|
||||
# https://www.freedesktop.org/software/systemd/man/systemd-stub.html
|
||||
objcopy_cmd = "objcopy \
|
||||
--add-section .osrel=%s --change-section-vma .osrel=0x20000 \
|
||||
--add-section .cmdline=%s --change-section-vma .cmdline=0x30000 \
|
||||
--add-section .linux=%s --change-section-vma .linux=0x2000000 \
|
||||
--add-section .initrd=%s --change-section-vma .initrd=0x3000000 \
|
||||
%s %s" % \
|
||||
("%s/usr/lib/os-release" % staging_dir_host,
|
||||
cmdline.name,
|
||||
"%s/%s" % (staging_kernel_dir, kernel),
|
||||
initrd.name,
|
||||
efi_stub,
|
||||
"%s/EFI/Linux/linux.efi" % hdddir)
|
||||
exec_cmd(objcopy_cmd)
|
||||
objcopy_cmd = "%s-objcopy" % target_sys
|
||||
objcopy_cmd += " --add-section .osrel=%s/usr/lib/os-release" % staging_dir_host
|
||||
objcopy_cmd += " --change-section-vma .osrel=0x20000"
|
||||
objcopy_cmd += " --add-section .cmdline=%s" % cmdline.name
|
||||
objcopy_cmd += " --change-section-vma .cmdline=0x30000"
|
||||
objcopy_cmd += " --add-section .linux=%s/%s" % (staging_kernel_dir, kernel)
|
||||
objcopy_cmd += " --change-section-vma .linux=0x2000000"
|
||||
objcopy_cmd += " --add-section .initrd=%s" % initrd.name
|
||||
objcopy_cmd += " --change-section-vma .initrd=0x3000000"
|
||||
objcopy_cmd += " %s %s/EFI/Linux/linux.efi" % (efi_stub, hdddir)
|
||||
exec_native_cmd(objcopy_cmd, native_sysroot)
|
||||
else:
|
||||
install_cmd = "install -m 0644 %s/%s %s/%s" % \
|
||||
(staging_kernel_dir, kernel, hdddir, kernel)
|
||||
|
|
Loading…
Reference in New Issue
Block a user