diff mbox

split c and cxx extra flags

Message ID CALfaEa0MirxK6ESnepptGLiugYZBOSQVxe=R72h+c_-GBXkYzQ@mail.gmail.com
State New
Headers show

Commit Message

Bruno Dominguez June 2, 2017, 1:07 p.m. UTC
There was no possibility to add specific cxx flags using the configure
file. So A new entrance has been created to support it.

Duplication of information in configure and rules.mak. Taking
QEMU_CFLAGS and add them to QEMU_CXXFLAGS, now the value of
QEMU_CXXFLAGS is stored in config-host.mak, so there is no need for
it.

The makefile for libvixl was adding flags for QEMU_CXXFLAGS in
QEMU_CFLAGS because of the addition in rules.mak. That was removed, so
adding them where it should be.

-----
Signed-off-by: Bruno Dominguez <bru.dominguez@gmail.com>
-----



Bruno

Comments

Bruno Dominguez June 6, 2017, 9:18 a.m. UTC | #1
Adding Peter Maydell in the cc and removing Claudio Fontana (It fails
sending to that address)

Bruno.

2017-06-02 14:07 GMT+01:00 Bruno Dominguez <bru.dominguez@gmail.com>:
> There was no possibility to add specific cxx flags using the configure
> file. So A new entrance has been created to support it.
>
> Duplication of information in configure and rules.mak. Taking
> QEMU_CFLAGS and add them to QEMU_CXXFLAGS, now the value of
> QEMU_CXXFLAGS is stored in config-host.mak, so there is no need for
> it.
>
> The makefile for libvixl was adding flags for QEMU_CXXFLAGS in
> QEMU_CFLAGS because of the addition in rules.mak. That was removed, so
> adding them where it should be.
>
> -----
> Signed-off-by: Bruno Dominguez <bru.dominguez@gmail.com>
> -----
>
> diff --git a/configure b/configure
> index 0586ec9..2fff3cc 100755
> --- a/configure
> +++ b/configure
> @@ -91,7 +91,8 @@ update_cxxflags() {
>      # Set QEMU_CXXFLAGS from QEMU_CFLAGS by filtering out those
>      # options which some versions of GCC's C++ compiler complain about
>      # because they only make sense for C programs.
> -    QEMU_CXXFLAGS=
> +    QEMU_CXXFLAGS="$QEMU_CXXFLAGS -D__STDC_LIMIT_MACROS"
> +
>      for arg in $QEMU_CFLAGS; do
>          case $arg in
>              -Wstrict-prototypes|-Wmissing-prototypes|-Wnested-externs|\
> @@ -102,6 +103,8 @@ update_cxxflags() {
>                  ;;
>          esac
>      done
> +
> +
>  }
>
>  compile_object() {
> @@ -344,6 +347,9 @@ for opt do
>    --extra-cflags=*) QEMU_CFLAGS="$QEMU_CFLAGS $optarg"
>                      EXTRA_CFLAGS="$optarg"
>    ;;
> +  --extra-cxxflags=*) QEMU_CXXFLAGS="$QEMU_CXXFLAGS $optarg"
> +                      EXTRA_CXXFLAGS="$optarg"
> +  ;;
>    --extra-ldflags=*) LDFLAGS="$LDFLAGS $optarg"
>                       EXTRA_LDFLAGS="$optarg"
>    ;;
> @@ -787,6 +793,8 @@ for opt do
>    ;;
>    --extra-cflags=*)
>    ;;
> +  --extra-cxxflags=*)
> +  ;;
>    --extra-ldflags=*)
>    ;;
>    --enable-debug-info)
> @@ -1304,6 +1312,7 @@ Advanced options (experts only):
>    --cxx=CXX                use C++ compiler CXX [$cxx]
>    --objcc=OBJCC            use Objective-C compiler OBJCC [$objcc]
>    --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS
> +  --extra-cxxflags=CXXFLAGS append extra CXX compiler flags QEMU_CXXFLAGS
>    --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS
>    --make=MAKE              use specified make [$make]
>    --install=INSTALL        use specified install [$install]
> @@ -1489,37 +1498,6 @@ if test "$bogus_os" = "yes"; then
>      error_exit "Unrecognized host OS $targetos"
>  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 > $TMPCXX <<EOF
> -extern "C" {
> -   int c_function(void);
> -}
> -int c_function(void) { return 42; }
> -EOF
> -
> -    update_cxxflags
> -
> -    if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $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
> -
>  gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
>  gcc_flags="-Wformat-security -Wformat-y2k -Winit-self
> -Wignored-qualifiers $gcc_flags"
>  gcc_flags="-Wno-missing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
> @@ -5063,6 +5041,38 @@ EOF
>    fi
>  fi
>
> +# Check that the C++ compiler exists and works with the C compiler.
> +# All the QEMU_CXXFLAGS are based on QEMU_CFLAGS. Keep this at the
> end to don't miss any other that could be added.
> +if has $cxx; then
> +    cat > $TMPC <<EOF
> +int c_function(void);
> +int main(void) { return c_function(); }
> +EOF
> +
> +    compile_object
> +
> +    cat > $TMPCXX <<EOF
> +extern "C" {
> +   int c_function(void);
> +}
> +int c_function(void) { return 42; }
> +EOF
> +
> +    update_cxxflags
> +
> +    if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $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
> +
>  echo_version() {
>      if test "$1" = "yes" ; then
>          echo "($2)"
> @@ -5268,6 +5278,7 @@ if test "$mingw32" = "no" ; then
>  fi
>  echo "qemu_helperdir=$libexecdir" >> $config_host_mak
>  echo "extra_cflags=$EXTRA_CFLAGS" >> $config_host_mak
> +echo "extra_cxxflags=$EXTRA_CXXFLAGS" >> $config_host_mak
>  echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak
>  echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
>  echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
> @@ -5906,6 +5917,7 @@ echo "WINDRES=$windres" >> $config_host_mak
>  echo "CFLAGS=$CFLAGS" >> $config_host_mak
>  echo "CFLAGS_NOPIE=$CFLAGS_NOPIE" >> $config_host_mak
>  echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
> +echo "QEMU_CXXFLAGS=$QEMU_CXXFLAGS" >> $config_host_mak
>  echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
>  if test "$sparse" = "yes" ; then
>    echo "CC           := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
> diff --git a/disas/libvixl/Makefile.objs b/disas/libvixl/Makefile.objs
> index bbe7695..dbf7def 100644
> --- a/disas/libvixl/Makefile.objs
> +++ b/disas/libvixl/Makefile.objs
> @@ -6,6 +6,6 @@ libvixl_OBJS = vixl/utils.o \
>
>  # The -Wno-sign-compare is needed only for gcc 4.6, which complains about
>  # some signed-unsigned equality comparisons which later gcc versions do not.
> -$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS :=
> -I$(SRC_PATH)/disas/libvixl $(QEMU_CFLAGS) -Wno-sign-compare
> +$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CXXFLAGS :=
> -I$(SRC_PATH)/disas/libvixl $(QEMU_CXXFLAGS) -Wno-sign-compare
>
>  common-obj-$(CONFIG_ARM_A64_DIS) += $(libvixl_OBJS)
> diff --git a/rules.mak b/rules.mak
> index 1c0eabb..2a2fb72 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -20,9 +20,6 @@ MAKEFLAGS += -rR
>  %.mak:
>  clean-target:
>
> -# Flags for C++ compilation
> -QEMU_CXXFLAGS = -D__STDC_LIMIT_MACROS $(filter-out
> -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs
> -Wold-style-declaration -Wold-style-definition -Wredundant-decls,
> $(QEMU_CFLAGS))
> -
>  # Flags for dependency generation
>  QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d
>
>
> Bruno
Stefan Hajnoczi June 6, 2017, 9:28 a.m. UTC | #2
On Fri, Jun 02, 2017 at 02:07:26PM +0100, Bruno Dominguez wrote:
> There was no possibility to add specific cxx flags using the configure
> file. So A new entrance has been created to support it.
> 
> Duplication of information in configure and rules.mak. Taking
> QEMU_CFLAGS and add them to QEMU_CXXFLAGS, now the value of
> QEMU_CXXFLAGS is stored in config-host.mak, so there is no need for
> it.
> 
> The makefile for libvixl was adding flags for QEMU_CXXFLAGS in
> QEMU_CFLAGS because of the addition in rules.mak. That was removed, so
> adding them where it should be.
> 
> -----
> Signed-off-by: Bruno Dominguez <bru.dominguez@gmail.com>
> -----

Please follow the code submission guidelines:
http://wiki.qemu.org/Contribute/SubmitAPatch

 * The commit message (email subject) should have a prefix describing
   the affected component.  Use "git log ./configure" for inspiration.
   I suggest the following:

     configure: split c and cxx extra flags

 * Use git-format-patch(1) so that your patch applies cleanly.  Your
   email has:

   ----
   Signed-off-by: ...
   ----

   This is not the format recognized by tools.  Instead the
   Signed-off-by: should be part of the commit description (no '----')
   and then a line with just three hyphens ('---') denotes the end of
   the commit description:

   Signed-off-by: ...
   ---

 * The email must not be line-wrapped since that breaks the patch.  If
   you use git-send-email(1) to submit patches then this is taken care
   of automatically.

> @@ -1304,6 +1312,7 @@ Advanced options (experts only):
>    --cxx=CXX                use C++ compiler CXX [$cxx]
>    --objcc=OBJCC            use Objective-C compiler OBJCC [$objcc]
>    --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS
> +  --extra-cxxflags=CXXFLAGS append extra CXX compiler flags QEMU_CXXFLAGS

For consistency with the --cxx= option description:

s/CXX compiler/C++ compiler/

> @@ -1489,37 +1498,6 @@ if test "$bogus_os" = "yes"; then
>      error_exit "Unrecognized host OS $targetos"
>  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 > $TMPCXX <<EOF
> -extern "C" {
> -   int c_function(void);
> -}
> -int c_function(void) { return 42; }
> -EOF
> -
> -    update_cxxflags
> -
> -    if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $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
> -

Why move this code?

> 
> Bruno
> 

This signature will break tools that apply the patch.  It's easiest to
use git-send-email(1) to avoid problems like this.
Bruno Dominguez June 6, 2017, 9:45 a.m. UTC | #3
2017-06-06 10:28 GMT+01:00 Stefan Hajnoczi <stefanha@gmail.com>:
> On Fri, Jun 02, 2017 at 02:07:26PM +0100, Bruno Dominguez wrote:
>> There was no possibility to add specific cxx flags using the configure
>> file. So A new entrance has been created to support it.
>>
>> Duplication of information in configure and rules.mak. Taking
>> QEMU_CFLAGS and add them to QEMU_CXXFLAGS, now the value of
>> QEMU_CXXFLAGS is stored in config-host.mak, so there is no need for
>> it.
>>
>> The makefile for libvixl was adding flags for QEMU_CXXFLAGS in
>> QEMU_CFLAGS because of the addition in rules.mak. That was removed, so
>> adding them where it should be.
>>
>> -----
>> Signed-off-by: Bruno Dominguez <bru.dominguez@gmail.com>
>> -----
>
> Please follow the code submission guidelines:
> http://wiki.qemu.org/Contribute/SubmitAPatch
>
>  * The commit message (email subject) should have a prefix describing
>    the affected component.  Use "git log ./configure" for inspiration.
>    I suggest the following:
>
>      configure: split c and cxx extra flags
>
>  * Use git-format-patch(1) so that your patch applies cleanly.  Your
>    email has:
>
>    ----
>    Signed-off-by: ...
>    ----
>
>    This is not the format recognized by tools.  Instead the
>    Signed-off-by: should be part of the commit description (no '----')
>    and then a line with just three hyphens ('---') denotes the end of
>    the commit description:
>
>    Signed-off-by: ...
>    ---
>
>  * The email must not be line-wrapped since that breaks the patch.  If
>    you use git-send-email(1) to submit patches then this is taken care
>    of automatically.
>

ok, will give it another go.

>> @@ -1304,6 +1312,7 @@ Advanced options (experts only):
>>    --cxx=CXX                use C++ compiler CXX [$cxx]
>>    --objcc=OBJCC            use Objective-C compiler OBJCC [$objcc]
>>    --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS
>> +  --extra-cxxflags=CXXFLAGS append extra CXX compiler flags QEMU_CXXFLAGS
>
> For consistency with the --cxx= option description:
>
> s/CXX compiler/C++ compiler/
>

will do.

>> @@ -1489,37 +1498,6 @@ if test "$bogus_os" = "yes"; then
>>      error_exit "Unrecognized host OS $targetos"
>>  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 > $TMPCXX <<EOF
>> -extern "C" {
>> -   int c_function(void);
>> -}
>> -int c_function(void) { return 42; }
>> -EOF
>> -
>> -    update_cxxflags
>> -
>> -    if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $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
>> -
>
> Why move this code?
>

the configure file adds "-fPIE -DPIE" to QEMU_CFLAGS around line 1570.
Where QEMU_CXXFLAGS is placed is not taken it, hence this flag is not
tested with the c++ compiler and breaks the build later on for not
existing. Because QEMU_CXXFLAGS was reassigned again in rules.mak this
was hidden.
Stefan Hajnoczi June 6, 2017, 10:38 a.m. UTC | #4
On Tue, Jun 6, 2017 at 10:45 AM, Bruno Dominguez
<bru.dominguez@gmail.com> wrote:
> 2017-06-06 10:28 GMT+01:00 Stefan Hajnoczi <stefanha@gmail.com>:
>> On Fri, Jun 02, 2017 at 02:07:26PM +0100, Bruno Dominguez wrote:
>>> @@ -1489,37 +1498,6 @@ if test "$bogus_os" = "yes"; then
>>>      error_exit "Unrecognized host OS $targetos"
>>>  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 > $TMPCXX <<EOF
>>> -extern "C" {
>>> -   int c_function(void);
>>> -}
>>> -int c_function(void) { return 42; }
>>> -EOF
>>> -
>>> -    update_cxxflags
>>> -
>>> -    if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $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
>>> -
>>
>> Why move this code?
>>
>
> the configure file adds "-fPIE -DPIE" to QEMU_CFLAGS around line 1570.
> Where QEMU_CXXFLAGS is placed is not taken it, hence this flag is not
> tested with the c++ compiler and breaks the build later on for not
> existing. Because QEMU_CXXFLAGS was reassigned again in rules.mak this
> was hidden.

Thanks for explaining.

Stefan
diff mbox

Patch

diff --git a/configure b/configure
index 0586ec9..2fff3cc 100755
--- a/configure
+++ b/configure
@@ -91,7 +91,8 @@  update_cxxflags() {
     # Set QEMU_CXXFLAGS from QEMU_CFLAGS by filtering out those
     # options which some versions of GCC's C++ compiler complain about
     # because they only make sense for C programs.
-    QEMU_CXXFLAGS=
+    QEMU_CXXFLAGS="$QEMU_CXXFLAGS -D__STDC_LIMIT_MACROS"
+
     for arg in $QEMU_CFLAGS; do
         case $arg in
             -Wstrict-prototypes|-Wmissing-prototypes|-Wnested-externs|\
@@ -102,6 +103,8 @@  update_cxxflags() {
                 ;;
         esac
     done
+
+
 }

 compile_object() {
@@ -344,6 +347,9 @@  for opt do
   --extra-cflags=*) QEMU_CFLAGS="$QEMU_CFLAGS $optarg"
                     EXTRA_CFLAGS="$optarg"
   ;;
+  --extra-cxxflags=*) QEMU_CXXFLAGS="$QEMU_CXXFLAGS $optarg"
+                      EXTRA_CXXFLAGS="$optarg"
+  ;;
   --extra-ldflags=*) LDFLAGS="$LDFLAGS $optarg"
                      EXTRA_LDFLAGS="$optarg"
   ;;
@@ -787,6 +793,8 @@  for opt do
   ;;
   --extra-cflags=*)
   ;;
+  --extra-cxxflags=*)
+  ;;
   --extra-ldflags=*)
   ;;
   --enable-debug-info)
@@ -1304,6 +1312,7 @@  Advanced options (experts only):
   --cxx=CXX                use C++ compiler CXX [$cxx]
   --objcc=OBJCC            use Objective-C compiler OBJCC [$objcc]
   --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS
+  --extra-cxxflags=CXXFLAGS append extra CXX compiler flags QEMU_CXXFLAGS
   --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS
   --make=MAKE              use specified make [$make]
   --install=INSTALL        use specified install [$install]
@@ -1489,37 +1498,6 @@  if test "$bogus_os" = "yes"; then
     error_exit "Unrecognized host OS $targetos"
 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 > $TMPCXX <<EOF
-extern "C" {
-   int c_function(void);
-}
-int c_function(void) { return 42; }
-EOF
-
-    update_cxxflags
-
-    if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $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
-
 gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
 gcc_flags="-Wformat-security -Wformat-y2k -Winit-self
-Wignored-qualifiers $gcc_flags"
 gcc_flags="-Wno-missing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
@@ -5063,6 +5041,38 @@  EOF
   fi
 fi

+# Check that the C++ compiler exists and works with the C compiler.
+# All the QEMU_CXXFLAGS are based on QEMU_CFLAGS. Keep this at the
end to don't miss any other that could be added.
+if has $cxx; then
+    cat > $TMPC <<EOF
+int c_function(void);
+int main(void) { return c_function(); }
+EOF
+
+    compile_object
+
+    cat > $TMPCXX <<EOF
+extern "C" {
+   int c_function(void);
+}
+int c_function(void) { return 42; }
+EOF
+
+    update_cxxflags
+
+    if do_cxx $QEMU_CXXFLAGS -o $TMPE $TMPCXX $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
+
 echo_version() {
     if test "$1" = "yes" ; then
         echo "($2)"
@@ -5268,6 +5278,7 @@  if test "$mingw32" = "no" ; then
 fi
 echo "qemu_helperdir=$libexecdir" >> $config_host_mak
 echo "extra_cflags=$EXTRA_CFLAGS" >> $config_host_mak
+echo "extra_cxxflags=$EXTRA_CXXFLAGS" >> $config_host_mak
 echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak
 echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
 echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
@@ -5906,6 +5917,7 @@  echo "WINDRES=$windres" >> $config_host_mak
 echo "CFLAGS=$CFLAGS" >> $config_host_mak
 echo "CFLAGS_NOPIE=$CFLAGS_NOPIE" >> $config_host_mak
 echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
+echo "QEMU_CXXFLAGS=$QEMU_CXXFLAGS" >> $config_host_mak
 echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
 if test "$sparse" = "yes" ; then
   echo "CC           := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
diff --git a/disas/libvixl/Makefile.objs b/disas/libvixl/Makefile.objs
index bbe7695..dbf7def 100644
--- a/disas/libvixl/Makefile.objs
+++ b/disas/libvixl/Makefile.objs
@@ -6,6 +6,6 @@  libvixl_OBJS = vixl/utils.o \

 # The -Wno-sign-compare is needed only for gcc 4.6, which complains about
 # some signed-unsigned equality comparisons which later gcc versions do not.
-$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS :=
-I$(SRC_PATH)/disas/libvixl $(QEMU_CFLAGS) -Wno-sign-compare
+$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CXXFLAGS :=
-I$(SRC_PATH)/disas/libvixl $(QEMU_CXXFLAGS) -Wno-sign-compare

 common-obj-$(CONFIG_ARM_A64_DIS) += $(libvixl_OBJS)
diff --git a/rules.mak b/rules.mak
index 1c0eabb..2a2fb72 100644
--- a/rules.mak
+++ b/rules.mak
@@ -20,9 +20,6 @@  MAKEFLAGS += -rR
 %.mak:
 clean-target:

-# Flags for C++ compilation
-QEMU_CXXFLAGS = -D__STDC_LIMIT_MACROS $(filter-out
-Wstrict-prototypes -Wmissing-prototypes -Wnested-externs
-Wold-style-declaration -Wold-style-definition -Wredundant-decls,
$(QEMU_CFLAGS))
-
 # Flags for dependency generation
 QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d