summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/binutils
diff options
context:
space:
mode:
authorChristopher Clark <christopher.w.clark@gmail.com>2018-07-30 00:55:21 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-08-09 23:47:56 +0100
commit028a292001f64ad86c6b960a05ba1f6fd72199de (patch)
tree1d70b89f7a8a12eb046b37a1f066b2ea1446b9c2 /meta/recipes-devtools/binutils
parenta15cad08de6bd4aa1e311aa1c7d6e2cfd1edaeaa (diff)
downloadpoky-028a292001f64ad86c6b960a05ba1f6fd72199de.tar.gz
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. (From OE-Core rev: 3d493838f0284948a09693ad65656cb7afbb21cc) Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/binutils')
-rw-r--r--meta/recipes-devtools/binutils/binutils-2.31.inc1
-rw-r--r--meta/recipes-devtools/binutils/binutils/0016-add-i386pep-emulation-for-x86_64.patch41
2 files changed, 42 insertions, 0 deletions
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 = "\
35 file://0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \ 35 file://0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \
36 file://0014-Detect-64-bit-MIPS-targets.patch \ 36 file://0014-Detect-64-bit-MIPS-targets.patch \
37 file://0015-sync-with-OE-libtool-changes.patch \ 37 file://0015-sync-with-OE-libtool-changes.patch \
38 file://0016-add-i386pep-emulation-for-x86_64.patch \
38" 39"
39S = "${WORKDIR}/git" 40S = "${WORKDIR}/git"
40 41
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 @@
1binutils : enable x86_64-pep for producing EFI binaries on x86-64
2
3Add x86_64-pep emulation support to the set enabled for x86_64 targets
4to enable the linker to produce Portable Executables for EFI binaries.
5
6Enables building the x86-64 EFI variant of the Xen hypervisor for
7the OpenXT Project.
8
9Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
10
11Upstream-Status: Inappropriate [OE configuration specific]
12---
13diff --git a/bfd/config.bfd b/bfd/config.bfd
14index c882421..dc705b6 100644
15--- a/bfd/config.bfd
16+++ b/bfd/config.bfd
17@@ -688,7 +688,7 @@ case "${targ}" in
18 ;;
19 x86_64-*-linux-*)
20 targ_defvec=x86_64_elf64_vec
21- 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"
22+ 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"
23 want64=true
24 ;;
25 x86_64-*-nacl*)
26diff --git a/ld/configure.tgt b/ld/configure.tgt
27index a1db7ad..65a984a 100644
28--- a/ld/configure.tgt
29+++ b/ld/configure.tgt
30@@ -253,8 +253,9 @@ x86_64-*-linux-gnux32) targ_emul=elf32_x86_64
31 tdir_elf_iamcu=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'`
32 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'` ;;
33 x86_64-*-linux-*) targ_emul=elf_x86_64
34- targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om"
35- targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
36+ targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pe i386pep"
37+ targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om i386pep"
38+ targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o"
39 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
40 i[3-7]86-*-redox*) targ_emul=elf_i386
41 targ_extra_emuls=elf_x86_64 ;;