diff mbox

libvixl: Correct build failures on NetBSD

Message ID 20170514051820.15985-1-n54@gmx.com (mailing list archive)
State New, archived
Headers show

Commit Message

Kamil Rytarowski May 14, 2017, 5:18 a.m. UTC
Ensure that C99 macros are defined regardless of the inclusion order of
headers in vixl. This is required at least on NetBSD.

The vixl/globals.h headers defines __STDC_CONSTANT_MACROS and must be
included before other system headers.

This file defines unconditionally the following macros, without altering
the original sources:
 - __STDC_CONSTANT_MACROS
 - __STDC_LIMIT_MACROS
 - __STDC_FORMAT_MACROS

Signed-off-by: Kamil Rytarowski <n54@gmx.com>
---
 disas/libvixl/Makefile.objs | 3 +++
 1 file changed, 3 insertions(+)

Comments

Philippe Mathieu-Daudé May 14, 2017, 5:41 a.m. UTC | #1
On 05/14/2017 02:18 AM, Kamil Rytarowski wrote:
> Ensure that C99 macros are defined regardless of the inclusion order of
> headers in vixl. This is required at least on NetBSD.
>
> The vixl/globals.h headers defines __STDC_CONSTANT_MACROS and must be
> included before other system headers.
>
> This file defines unconditionally the following macros, without altering
> the original sources:
>  - __STDC_CONSTANT_MACROS
>  - __STDC_LIMIT_MACROS
>  - __STDC_FORMAT_MACROS
>
> Signed-off-by: Kamil Rytarowski <n54@gmx.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  disas/libvixl/Makefile.objs | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/disas/libvixl/Makefile.objs b/disas/libvixl/Makefile.objs
> index bbe7695fdb..860fb7f384 100644
> --- a/disas/libvixl/Makefile.objs
> +++ b/disas/libvixl/Makefile.objs
> @@ -7,5 +7,8 @@ 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
> +# Ensure that C99 macros are defined regardless of the inclusion order of
> +# headers in vixl. This is required at least on NetBSD.
> +$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS += -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS
>
>  common-obj-$(CONFIG_ARM_A64_DIS) += $(libvixl_OBJS)
>
Kamil Rytarowski May 23, 2017, 2:38 p.m. UTC | #2
Can we please merge it with master?

On 14.05.2017 07:41, Philippe Mathieu-Daudé wrote:
> On 05/14/2017 02:18 AM, Kamil Rytarowski wrote:
>> Ensure that C99 macros are defined regardless of the inclusion order of
>> headers in vixl. This is required at least on NetBSD.
>>
>> The vixl/globals.h headers defines __STDC_CONSTANT_MACROS and must be
>> included before other system headers.
>>
>> This file defines unconditionally the following macros, without altering
>> the original sources:
>>  - __STDC_CONSTANT_MACROS
>>  - __STDC_LIMIT_MACROS
>>  - __STDC_FORMAT_MACROS
>>
>> Signed-off-by: Kamil Rytarowski <n54@gmx.com>
> 
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> 
>> ---
>>  disas/libvixl/Makefile.objs | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/disas/libvixl/Makefile.objs b/disas/libvixl/Makefile.objs
>> index bbe7695fdb..860fb7f384 100644
>> --- a/disas/libvixl/Makefile.objs
>> +++ b/disas/libvixl/Makefile.objs
>> @@ -7,5 +7,8 @@ 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
>> +# Ensure that C99 macros are defined regardless of the inclusion
>> order of
>> +# headers in vixl. This is required at least on NetBSD.
>> +$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS +=
>> -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS
>>
>>  common-obj-$(CONFIG_ARM_A64_DIS) += $(libvixl_OBJS)
>>
>
Peter Maydell May 30, 2017, 11:03 a.m. UTC | #3
On 14 May 2017 at 06:18, Kamil Rytarowski <n54@gmx.com> wrote:
> Ensure that C99 macros are defined regardless of the inclusion order of
> headers in vixl. This is required at least on NetBSD.
>
> The vixl/globals.h headers defines __STDC_CONSTANT_MACROS and must be
> included before other system headers.
>
> This file defines unconditionally the following macros, without altering
> the original sources:
>  - __STDC_CONSTANT_MACROS
>  - __STDC_LIMIT_MACROS
>  - __STDC_FORMAT_MACROS
>
> Signed-off-by: Kamil Rytarowski <n54@gmx.com>
> ---
>  disas/libvixl/Makefile.objs | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/disas/libvixl/Makefile.objs b/disas/libvixl/Makefile.objs
> index bbe7695fdb..860fb7f384 100644
> --- a/disas/libvixl/Makefile.objs
> +++ b/disas/libvixl/Makefile.objs
> @@ -7,5 +7,8 @@ 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
> +# Ensure that C99 macros are defined regardless of the inclusion order of
> +# headers in vixl. This is required at least on NetBSD.
> +$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS += -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS

Thanks for this patch -- I have applied it to target-arm.next.

I've also reported the underlying libvixl bug upstream so hopefully
it will be fixed in a future libvixl version too.

thanks
-- PMM
diff mbox

Patch

diff --git a/disas/libvixl/Makefile.objs b/disas/libvixl/Makefile.objs
index bbe7695fdb..860fb7f384 100644
--- a/disas/libvixl/Makefile.objs
+++ b/disas/libvixl/Makefile.objs
@@ -7,5 +7,8 @@  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
+# Ensure that C99 macros are defined regardless of the inclusion order of
+# headers in vixl. This is required at least on NetBSD.
+$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS += -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS
 
 common-obj-$(CONFIG_ARM_A64_DIS) += $(libvixl_OBJS)