[OE-core] [PATCH v4] qemu-native: set ld.bfd, fix cflags, and set some environment vars
Robert Yang
liezhi.yang at windriver.com
Thu Jun 23 07:54:48 UTC 2016
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
More information about the Openembedded-core
mailing list