All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: Thomas Huth <thuth@linux.vnet.ibm.com>,
	Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org, patches@linaro.org
Subject: Re: [Qemu-devel] [PATCH] configure: check that C++ compiler actually works
Date: Fri, 21 Feb 2014 12:43:23 +1100	[thread overview]
Message-ID: <5306AF3B.1060701@ozlabs.ru> (raw)
In-Reply-To: <20140220165819.047aba8c@oc7435384737.ibm.com>

On 02/21/2014 02:58 AM, Thomas Huth wrote:
> On Thu, 20 Feb 2014 15:10:16 +0000
> Peter Maydell <peter.maydell@linaro.org> wrote:
> 
>> Check that the C++ compiler works with the C compiler; if it
>> does not, then don't pass CXX to the build process. This
>> fixes a regression where QEMU was no longer building if the
>> build environment didn't have a C++ compiler (introduced
>> in commit 3144f78b, which incorrectly assumed that rules.mak
>> would only see a non-empty $(CXX) if configure had actually
>> found a working C++ compiler).
>>
>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>> Reported-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>> Reported-by: Thomas Huth <thuth@linux.vnet.ibm.com>
>> ---
>> Apologies for the breakage for people who were building in
>> setups with no C++ compiler -- I should have tested the
>> original change more thoroughly.
>>
>>  configure | 29 +++++++++++++++++++++++++++++
>>  1 file changed, 29 insertions(+)
>>
>> diff --git a/configure b/configure
>> index 4648117..6829cbb 100755
>> --- a/configure
>> +++ b/configure
>> @@ -1289,6 +1289,35 @@ else
>>      error_exit "\"$cc\" either does not exist or does not work"
>>  fi
>>
>> +# Check that the C++ compiler exists and works with the C compiler
>> +if has $cxx; then
>> +    cat > $TMPC <<EOF
>> +int c_function(void);
>> +int main(void) { return c_function(); }
>> +EOF
>> +
>> +    compile_object
>> +
>> +    cat > $TMPC <<EOF
>> +extern "C" {
>> +   int c_function(void);
>> +}
>> +int c_function(void) { return 42; }
>> +EOF
>> +
>> +    if (cc=$cxx do_cc $QEMU_CFLAGS -o $TMPE $TMPC $TMPO $LDFLAGS); then
>> +        # C++ compiler $cxx works ok with C compiler $cc
>> +        :
>> +    else
>> +        echo "C++ compiler $cxx does not work with C compiler $cc"
>> +        echo "Disabling C++ specific optional code"
>> +        cxx=
>> +    fi
>> +else
>> +    echo "No C++ compiler available; disabling C++ specific optional code"
>> +    cxx=
>> +fi
>> +
>>  # Consult white-list to determine whether to enable werror
>>  # by default.  Only enable by default for git builds
>>  z_version=`cut -f3 -d. $source_path/VERSION`
> 
> Works fine for me now on my system w/o C++ compiler:
> Tested-by: Thomas Huth <thuth@linux.vnet.ibm.com>


Works for me too, in cross environment for ppc64 on x86_64,
Tested-by: Alexey Kardashevskiy <aik@ozlabs.ru>

Thanks.


-- 
Alexey

  reply	other threads:[~2014-02-21  1:43 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-20 15:10 [Qemu-devel] [PATCH] configure: check that C++ compiler actually works Peter Maydell
2014-02-20 15:58 ` Thomas Huth
2014-02-21  1:43   ` Alexey Kardashevskiy [this message]
2014-02-24 15:38 ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5306AF3B.1060701@ozlabs.ru \
    --to=aik@ozlabs.ru \
    --cc=patches@linaro.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.