Skip to content

Commit

Permalink
osdep.h: Define macros for the benefit of C++ before C++11
Browse files Browse the repository at this point in the history
For C++ before C++11, <stdint.h> requires definition of the macros
__STDC_CONSTANT_MACROS, __STDC_LIMIT_MACROS and __STDC_FORMAT_MACROS
in order to enable definition of various macros by the header file.
Define these in osdep.h, so that we get the right header file
definitions whether osdep.h is being used by plain C, C++11 or
older C++.

In particular libvixl's header files depend on this and won't
compile if osdep.h is included before them otherwise.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
  • Loading branch information
pm215 committed Feb 23, 2016
1 parent 1ef26b1 commit 79f56d8
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions include/qemu/osdep.h
Expand Up @@ -28,6 +28,20 @@
#include "config-host.h"
#include "qemu/compiler.h"

/* Older versions of C++ don't get definitions of various macros from
* stdlib.h unless we define these macros before first inclusion of
* that system header.
*/
#ifndef __STDC_CONSTANT_MACROS
#define __STDC_CONSTANT_MACROS
#endif
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS
#endif
#ifndef __STDC_FORMAT_MACROS
#define __STDC_FORMAT_MACROS
#endif

/* The following block of code temporarily renames the daemon() function so the
* compiler does not see the warning associated with it in stdlib.h on OSX
*/
Expand Down

0 comments on commit 79f56d8

Please sign in to comment.