[OE-core] [PATCH v4] qemu-native: set ld.bfd, fix cflags, and set some environment vars

Ting Liu ting.liu at nxp.com
Fri Jun 24 02:29:22 UTC 2016


Same issue on CentOS 6.7. Older gcc does not support -fuse-ld=bfd.

-Ting

> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf
> Of Robert Yang
> Sent: Thursday, June 23, 2016 3:55 PM
> To: Stephen Arnold <stephen.arnold42 at gmail.com>; Patches and
> discussions about the oe-core layer <openembedded-
> core at lists.openembedded.org>
> Subject: Re: [OE-core] [PATCH v4] qemu-native: set ld.bfd, fix cflags, and set
> some environment vars
> 
> 
> Hi, I got build errors on Ubuntu 12.04 with this patch:
> 
> | DEBUG: Executing shell function do_configure
> |
> | ERROR: "gcc " cannot build an executable (is your linker broken?)
> 
> 
> // Robert
> 
> On 06/21/2016 09:18 AM, Stephen Arnold wrote:
> > And I finally figured out git send-email no longer has a
> > --subject-prefix= option so it looks like --compose and hand-edit the
> > Subject line in the patch is the only way to increment the version.
> >
> > This is [PATCH v4] btw...
> >
> > Steve
> >
> > On Mon, Jun 20, 2016 at 5:54 PM, Stephen Arnold <sarnold at vctlabs.com>
> wrote:
> >> The main thing is build failures with gold linker, but qemu is also a
> >> little too aggressive at finding random tools on the build host, so
> >> we also set the build env for qemu-native and make sure it doesn't
> >> reset its own (hard-coded) cflags when we don't want it to.
> >>
> >> Signed-off-by: Stephen Arnold <sarnold at vctlabs.com>
> >>
> >> The cflags patch was imported from Gentoo Portage and has been
> >> manitained over several versions; this version was rebased against
> >> upstream qemu git.
> >>
> >> Upstream-Status: Inappropriate
> >>   - Patch addresses distribution maintenance and build environment
> >>     sanity.
> >>
> >> Signed-off-by: Stephen Arnold <nerdboy at gentoo.org>
> >> ---
> >>   meta/recipes-devtools/qemu/qemu.inc                | 11 ++++++--
> >>   .../qemu/qemu/qemu-2.6.0-cflags.patch              | 31
> ++++++++++++++++++++++
> >>   meta/recipes-devtools/qemu/qemu_2.6.0.bb           |  1 +
> >>   3 files changed, 41 insertions(+), 2 deletions(-)
> >>   create mode 100644
> >> meta/recipes-devtools/qemu/qemu/qemu-2.6.0-cflags.patch
> >>
> >> diff --git a/meta/recipes-devtools/qemu/qemu.inc
> >> b/meta/recipes-devtools/qemu/qemu.inc
> >> index bf689bb..0a68f05 100644
> >> --- a/meta/recipes-devtools/qemu/qemu.inc
> >> +++ b/meta/recipes-devtools/qemu/qemu.inc
> >> @@ -30,8 +30,10 @@ SRC_URI_append_class-native = "\
> >>
> >>   EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --
> disable-werror  --disable-bluez --disable-libiscsi --with-system-pixman --
> extra-cflags='${CFLAGS}'"
> >>
> >> -EXTRA_OECONF_class-nativesdk = "--target-
> list=${@get_qemu_target_list(d)} --disable-werror \
> >> -                               "
> >> +EXTRA_OECONF_class-nativesdk = "--target-
> list=${@get_qemu_target_list(d)} --disable-werror"
> >> +
> >> +EXTRA_OEMAKE_append_class-native = "
> LD="${TARGET_PREFIX}ld.bfd" AR="${AR}" OBJCOPY="${OBJCOPY}"
> LDFLAGS="${LDFLAGS}""
> >> +
> >>   export LIBTOOL="${HOST_SYS}-libtool"
> >>
> >>   do_configure_prepend_class-native() { @@ -40,6 +42,11 @@
> >> do_configure_prepend_class-native() {
> >>          if [ ! -z "$BHOST_PKGCONFIG_PATH" ]; then
> >>                  export
> PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$BHOST_PKGCONFIG_PATH
> >>          fi
> >> +
> >> +       # Alter target makefiles to accept CFLAGS set via env
> >> +       sed -i -r \
> >> +               -e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
> >> +               "${S}"/Makefile "${S}"/Makefile.target
> >>   }
> >>
> >>   KVMENABLE = "--enable-kvm"
> >> diff --git a/meta/recipes-devtools/qemu/qemu/qemu-2.6.0-cflags.patch
> >> b/meta/recipes-devtools/qemu/qemu/qemu-2.6.0-cflags.patch
> >> new file mode 100644
> >> index 0000000..5b78edf
> >> --- /dev/null
> >> +++ b/meta/recipes-devtools/qemu/qemu/qemu-2.6.0-cflags.patch
> >> @@ -0,0 +1,31 @@
> >> +From 5d29baaf7a8c09f2f97231116e0f396b0402b23d Mon Sep 17 00:00:00
> >> +2001
> >> +From: Steve Arnold <stephen.arnold42 at gmail.com>
> >> +Date: Sun, 19 Jun 2016 11:29:44 -0700
> >> +Subject: [PATCH] configure: remove hard-coded flags and let build
> >> +env handle  it
> >> +
> >> +Apply distribution patch for handling debug and fortify source options.
> >> +
> >> +Signed-off-by: Steve Arnold <nerdboy at gentoo.org>
> >> +---
> >> + configure | 4 ----
> >> + 1 file changed, 4 deletions(-)
> >> +
> >> +diff --git a/configure b/configure
> >> +index 10cb212..6f1b10c 100755
> >> +--- a/configure
> >> ++++ b/configure
> >> +@@ -4539,10 +4539,6 @@ fi
> >> + if test "$gcov" = "yes" ; then
> >> +   CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
> >> +   LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
> >> +-elif test "$fortify_source" = "yes" ; then
> >> +-  CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
> >> +-elif test "$debug" = "no"; then
> >> +-  CFLAGS="-O2 $CFLAGS"
> >> + fi
> >> +
> >> + ##########################################
> >> +--
> >> +2.8.1
> >> +
> >> diff --git a/meta/recipes-devtools/qemu/qemu_2.6.0.bb
> >> b/meta/recipes-devtools/qemu/qemu_2.6.0.bb
> >> index e391326..62c509b 100644
> >> --- a/meta/recipes-devtools/qemu/qemu_2.6.0.bb
> >> +++ b/meta/recipes-devtools/qemu/qemu_2.6.0.bb
> >> @@ -8,6 +8,7 @@ SRC_URI += "file://configure-fix-Darwin-target-
> detection.patch \
> >>               file://Qemu-Arm-versatilepb-Add-memory-size-checking.patch \
> >>               file://no-valgrind.patch \
> >>               file://pathlimit.patch \
> >> +            file://qemu-2.5.0-cflags.patch \
> >>              "
> >>   SRC_URI_prepend = "http://wiki.qemu-
> project.org/download/${BP}.tar.bz2"
> >>   SRC_URI[md5sum] = "ca3f70b43f093e33e9e014f144067f13"
> >> --
> >> 2.8.1
> >>
> >> --
> >> _______________________________________________
> >> Openembedded-core mailing list
> >> Openembedded-core at lists.openembedded.org
> >> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list