All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6] binutils : enable x86_64-pep for producing EFI binaries on x86-64
@ 2018-07-30  7:55 Christopher Clark
  2018-07-30 11:29 ` Burton, Ross
  0 siblings, 1 reply; 5+ messages in thread
From: Christopher Clark @ 2018-07-30  7:55 UTC (permalink / raw)
  To: openembedded-core

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 <christopher.clark6@baesystems.com>
---
Changes in v6: added required "Upstream-Status" field to patch header.

Changes in v5: Apply a patch to extend the set of emulations for x86-64,
instead of supplying the "enable-targets" flag via the recipe.

Reasoning: this looks like the least invasive way to add the needed emulation
only when required. It will add the extra support to any builds that have
x86-64 target enabled and not modify others.

binutils uses autoconf and the AC_ARG_ENABLE macro for handling the
"--enable-targets" option to the generated configure script. It doesn't allow
for repeating the parameter with additional arguments to extend the list:
it's a one-shot flag. That seems to be standard practice for autoconf.

binutils source contains config files that map from the target identifiers
to lists of emulations to enable. This patch extends some of those lists.

Tested with x86-64 build to produce Xen EFI.

 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

diff --git a/meta/recipes-devtools/binutils/binutils-2.31.inc b/meta/recipes-devtools/binutils/binutils-2.31.inc
index ec9e9c3..02d5bca 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 0000000..9f20784
--- /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 <christopher.clark6@baesystems.com>
+
+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 ;;
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v6] binutils : enable x86_64-pep for producing EFI binaries on x86-64
  2018-07-30  7:55 [PATCH v6] binutils : enable x86_64-pep for producing EFI binaries on x86-64 Christopher Clark
@ 2018-07-30 11:29 ` Burton, Ross
  2018-07-30 17:29   ` Christopher Clark
  2018-07-30 18:32   ` Khem Raj
  0 siblings, 2 replies; 5+ messages in thread
From: Burton, Ross @ 2018-07-30 11:29 UTC (permalink / raw)
  To: Christopher Clark; +Cc: OE-core

Is just passing --enable-targets=all not an option?

Ross

On 30 July 2018 at 08:55, Christopher Clark
<christopher.w.clark@gmail.com> wrote:
> 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 <christopher.clark6@baesystems.com>
> ---
> Changes in v6: added required "Upstream-Status" field to patch header.
>
> Changes in v5: Apply a patch to extend the set of emulations for x86-64,
> instead of supplying the "enable-targets" flag via the recipe.
>
> Reasoning: this looks like the least invasive way to add the needed emulation
> only when required. It will add the extra support to any builds that have
> x86-64 target enabled and not modify others.
>
> binutils uses autoconf and the AC_ARG_ENABLE macro for handling the
> "--enable-targets" option to the generated configure script. It doesn't allow
> for repeating the parameter with additional arguments to extend the list:
> it's a one-shot flag. That seems to be standard practice for autoconf.
>
> binutils source contains config files that map from the target identifiers
> to lists of emulations to enable. This patch extends some of those lists.
>
> Tested with x86-64 build to produce Xen EFI.
>
>  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
>
> diff --git a/meta/recipes-devtools/binutils/binutils-2.31.inc b/meta/recipes-devtools/binutils/binutils-2.31.inc
> index ec9e9c3..02d5bca 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 0000000..9f20784
> --- /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 <christopher.clark6@baesystems.com>
> +
> +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 ;;
> --
> 2.7.4
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v6] binutils : enable x86_64-pep for producing EFI binaries on x86-64
  2018-07-30 11:29 ` Burton, Ross
@ 2018-07-30 17:29   ` Christopher Clark
  2018-07-30 18:32   ` Khem Raj
  1 sibling, 0 replies; 5+ messages in thread
From: Christopher Clark @ 2018-07-30 17:29 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 1451 bytes --]

On Mon, Jul 30, 2018 at 4:29 AM, Burton, Ross <ross.burton@intel.com> wrote:

> On 30 July 2018 at 08:55, Christopher Clark
> <christopher.w.clark@gmail.com> wrote:
> > 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.
> >
>

> Is just passing --enable-targets=all not an option?

It is a possible option, but I prefer not to. Here's why:

This binutils software, and definitely the cross variant that is built, is
one that a lot of trust ends up being placed in. It runs on the build
servers (typically a privileged environment, eg. on the internal intranet,
with access to proprietary source code, sometimes signature keys, shared
network storage, etc.) and processes a _lot_ of input data (source code)
obtained from third parties.

In addition to that, it then produces the binaries that are run on the
target systems.

Since it is difficult to fully audit every version of all of the input,
always, it does make sense to take additional care with the tools that
process it.

I think it's reasonable, and advisable, to want the default to be to
minimize the build for this component, and narrow its functionality to that
required to produce executables for the target architecture that the build
is for.

Christopher

[-- Attachment #2: Type: text/html, Size: 2522 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v6] binutils : enable x86_64-pep for producing EFI binaries on x86-64
  2018-07-30 11:29 ` Burton, Ross
  2018-07-30 17:29   ` Christopher Clark
@ 2018-07-30 18:32   ` Khem Raj
  2018-08-06 18:59     ` Christopher Clark
  1 sibling, 1 reply; 5+ messages in thread
From: Khem Raj @ 2018-07-30 18:32 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 5721 bytes --]

We can and many toolchains do that especially in embedded targets but it
will cause more compile time to build binutils and size will grow a lot and
since we do not use universal binutils which can be shared across
architectures we will not benefit from this although it does mean our
binutils will be able to inspect objects of many different kinds weather
that’s valuable or not I can’t say much it’s not my usecase at least

On Mon, Jul 30, 2018 at 4:29 AM Burton, Ross <ross.burton@intel.com> wrote:

> Is just passing --enable-targets=all not an option?
>
> Ross
>
> On 30 July 2018 at 08:55, Christopher Clark
> <christopher.w.clark@gmail.com> wrote:
> > 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 <christopher.clark6@baesystems.com>
> > ---
> > Changes in v6: added required "Upstream-Status" field to patch header.
> >
> > Changes in v5: Apply a patch to extend the set of emulations for x86-64,
> > instead of supplying the "enable-targets" flag via the recipe.
> >
> > Reasoning: this looks like the least invasive way to add the needed
> emulation
> > only when required. It will add the extra support to any builds that have
> > x86-64 target enabled and not modify others.
> >
> > binutils uses autoconf and the AC_ARG_ENABLE macro for handling the
> > "--enable-targets" option to the generated configure script. It doesn't
> allow
> > for repeating the parameter with additional arguments to extend the list:
> > it's a one-shot flag. That seems to be standard practice for autoconf.
> >
> > binutils source contains config files that map from the target
> identifiers
> > to lists of emulations to enable. This patch extends some of those lists.
> >
> > Tested with x86-64 build to produce Xen EFI.
> >
> >  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
> >
> > diff --git a/meta/recipes-devtools/binutils/binutils-2.31.inc
> b/meta/recipes-devtools/binutils/binutils-2.31.inc
> > index ec9e9c3..02d5bca 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 0000000..9f20784
> > --- /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 <christopher.clark6@baesystems.com>
> > +
> > +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 ;;
> > --
> > 2.7.4
> >
>

[-- Attachment #2: Type: text/html, Size: 6969 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v6] binutils : enable x86_64-pep for producing EFI binaries on x86-64
  2018-07-30 18:32   ` Khem Raj
@ 2018-08-06 18:59     ` Christopher Clark
  0 siblings, 0 replies; 5+ messages in thread
From: Christopher Clark @ 2018-08-06 18:59 UTC (permalink / raw)
  To: Khem Raj; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 6071 bytes --]

Khem, are you OK with this v6 patch for binutils to add build support for
EFI on x86-64?

Christopher

On Mon, Jul 30, 2018 at 11:32 AM, Khem Raj <raj.khem@gmail.com> wrote:

> We can and many toolchains do that especially in embedded targets but it
> will cause more compile time to build binutils and size will grow a lot and
> since we do not use universal binutils which can be shared across
> architectures we will not benefit from this although it does mean our
> binutils will be able to inspect objects of many different kinds weather
> that’s valuable or not I can’t say much it’s not my usecase at least
>
> On Mon, Jul 30, 2018 at 4:29 AM Burton, Ross <ross.burton@intel.com>
> wrote:
>
>> Is just passing --enable-targets=all not an option?
>>
>> Ross
>>
>> On 30 July 2018 at 08:55, Christopher Clark
>> <christopher.w.clark@gmail.com> wrote:
>> > 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 <christopher.clark6@baesystems.com>
>> > ---
>> > Changes in v6: added required "Upstream-Status" field to patch header.
>> >
>> > Changes in v5: Apply a patch to extend the set of emulations for x86-64,
>> > instead of supplying the "enable-targets" flag via the recipe.
>> >
>> > Reasoning: this looks like the least invasive way to add the needed
>> emulation
>> > only when required. It will add the extra support to any builds that
>> have
>> > x86-64 target enabled and not modify others.
>> >
>> > binutils uses autoconf and the AC_ARG_ENABLE macro for handling the
>> > "--enable-targets" option to the generated configure script. It doesn't
>> allow
>> > for repeating the parameter with additional arguments to extend the
>> list:
>> > it's a one-shot flag. That seems to be standard practice for autoconf.
>> >
>> > binutils source contains config files that map from the target
>> identifiers
>> > to lists of emulations to enable. This patch extends some of those
>> lists.
>> >
>> > Tested with x86-64 build to produce Xen EFI.
>> >
>> >  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
>> >
>> > diff --git a/meta/recipes-devtools/binutils/binutils-2.31.inc
>> b/meta/recipes-devtools/binutils/binutils-2.31.inc
>> > index ec9e9c3..02d5bca 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 0000000..9f20784
>> > --- /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 <christopher.clark6@baesystems.com>
>> > +
>> > +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 ;;
>> > --
>> > 2.7.4
>> >
>>
>

[-- Attachment #2: Type: text/html, Size: 7674 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-08-06 18:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-30  7:55 [PATCH v6] binutils : enable x86_64-pep for producing EFI binaries on x86-64 Christopher Clark
2018-07-30 11:29 ` Burton, Ross
2018-07-30 17:29   ` Christopher Clark
2018-07-30 18:32   ` Khem Raj
2018-08-06 18:59     ` Christopher Clark

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.