summaryrefslogtreecommitdiff
path: root/compiler.h
AgeCommit message (Collapse)AuthorFilesLines
2012-09-23w32: Always use standard instead of native format stringsStefan Weil1-0/+5
GLib 2.0 include files use __printf__ for the format attribute which resolves to native format strings on w32 hosts. QEMU wants standard format strings instead of native format strings, so we simply change any declaration with __printf__ to use __gnu_printf__. This works because all basic printf functions support both kinds of format strings. This fixes a compiler warning: qapi/string-output-visitor.c: In function ‘print_type_int’: qapi/string-output-visitor.c:34:5: warning: unknown conversion type character ‘l’ in format [-Wformat] qapi/string-output-visitor.c:34:5: warning: too many arguments for format [-Wformat-extra-args] Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
2012-08-15win32: provide separate macros for weak decls and definitionsAnthony Liguori1-0/+6
mingw32 seems to want the declaration to also carry the weak attribute. Strangely, gcc on Linux absolutely does not want the declaration to be marked as weak. This may not be the right fix, but it seems to do the trick. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-08-13compiler: add macro for GCC weak symbolsAnthony Liguori1-0/+1
This lets us provide a default implementation of a symbol which targets can override. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2012-02-09rewrite QEMU_BUILD_BUG_ONDong Xu Wang1-1/+3
On some platforms, __LINE__ will not expand to real number in QEMU_BUILD_BUG_ON, so if using QEMU_BUILD_BUG_ON twice, compiler will report errors. This patch will fix it. BTW, I got error message on RHEL 6.1/gcc 4.4.5. Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2011-09-23Fix and clean code which tests the gcc versionStefan Weil1-1/+1
The code which tests whether gcc supports warn_unused_result was wrong. Remove the wrong test from configure and replace it by code using macro QEMU_GNUC_PREREQ in compiler.h. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2011-09-23Move macro QEMU_GNUC_PREREQ to compiler.hStefan Weil1-2/+13
The macro is compiler specific and does not depend on the operating system. Move macro QEMU_GNUC_PREREQ from osdep.h to compiler.h and use it to simplify existing code. host-utils.h uses this macro, so it now needs compiler.h instead of osdep.h. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2011-09-03Add new macro QEMU_PACKED for packed C structuresStefan Weil1-0/+6
A packed struct needs different gcc attributes for compilations with MinGW compilers because glib-2.0 adds compiler flag -mms-bitfields which modifies the packing algorithm. Attribute gcc_struct reverses the negative effects of -mms-bitfields. QEMU_PACKED sets this attribute and must be used for any packed struct which is affected by -mms-bitfields. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2011-07-21Introduce compiler.h header fileLuiz Capitulino1-0/+34
This moves compiler related macros from qemu-common.h to compiler.h. The reason for this change is that there are simple header files that depend only on the compiler macros, so including qemu-common.h is overkill. Besides, qemu-common.h is bloated and will benefit from some splitting. Please, also note that the QEMU_BUILD_BUG_ON() macro is being fixed to not use double underscores as a prefix and the license text was added by Vassili Karpov (malc), who is one of the authors of the new file. Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>