From 3d493838f0284948a09693ad65656cb7afbb21cc Mon Sep 17 00:00:00 2001 From: Christopher Clark Date: Mon, 30 Jul 2018 00:55:21 -0700 Subject: binutils: enable x86_64-pep for producing EFI binaries on x86-64 Add x86_64-pep emulation support to the set enabled for x86_64 targets to enable the linker to produce Portable Executables for EFI binaries. Enables building the x86-64 EFI variant of the Xen hypervisor for the OpenXT Project. Signed-off-by: Christopher Clark Signed-off-by: Ross Burton --- meta/recipes-devtools/binutils/binutils-2.31.inc | 1 + .../0016-add-i386pep-emulation-for-x86_64.patch | 41 ++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 meta/recipes-devtools/binutils/binutils/0016-add-i386pep-emulation-for-x86_64.patch (limited to 'meta/recipes-devtools') diff --git a/meta/recipes-devtools/binutils/binutils-2.31.inc b/meta/recipes-devtools/binutils/binutils-2.31.inc index ec9e9c330d..02d5bcab73 100644 --- a/meta/recipes-devtools/binutils/binutils-2.31.inc +++ b/meta/recipes-devtools/binutils/binutils-2.31.inc @@ -35,6 +35,7 @@ SRC_URI = "\ file://0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \ file://0014-Detect-64-bit-MIPS-targets.patch \ file://0015-sync-with-OE-libtool-changes.patch \ + file://0016-add-i386pep-emulation-for-x86_64.patch \ " S = "${WORKDIR}/git" diff --git a/meta/recipes-devtools/binutils/binutils/0016-add-i386pep-emulation-for-x86_64.patch b/meta/recipes-devtools/binutils/binutils/0016-add-i386pep-emulation-for-x86_64.patch new file mode 100644 index 0000000000..9f20784eba --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils/0016-add-i386pep-emulation-for-x86_64.patch @@ -0,0 +1,41 @@ +binutils : enable x86_64-pep for producing EFI binaries on x86-64 + +Add x86_64-pep emulation support to the set enabled for x86_64 targets +to enable the linker to produce Portable Executables for EFI binaries. + +Enables building the x86-64 EFI variant of the Xen hypervisor for +the OpenXT Project. + +Signed-off-by: Christopher Clark + +Upstream-Status: Inappropriate [OE configuration specific] +--- +diff --git a/bfd/config.bfd b/bfd/config.bfd +index c882421..dc705b6 100644 +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -688,7 +688,7 @@ case "${targ}" in + ;; + x86_64-*-linux-*) + targ_defvec=x86_64_elf64_vec +- targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" ++ targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec x86_64_pe_vec x86_64_pe_be_vec i386_pe_vec" + want64=true + ;; + x86_64-*-nacl*) +diff --git a/ld/configure.tgt b/ld/configure.tgt +index a1db7ad..65a984a 100644 +--- a/ld/configure.tgt ++++ b/ld/configure.tgt +@@ -253,8 +253,9 @@ x86_64-*-linux-gnux32) targ_emul=elf32_x86_64 + tdir_elf_iamcu=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'` + tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'` ;; + x86_64-*-linux-*) targ_emul=elf_x86_64 +- targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om" +- targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om" ++ targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pe i386pep" ++ targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om i386pep" ++ targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" + tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;; + i[3-7]86-*-redox*) targ_emul=elf_i386 + targ_extra_emuls=elf_x86_64 ;; -- cgit 1.2.3-korg