diff options
-rwxr-xr-x | configure | 15 | ||||
-rw-r--r-- | osdep.h | 3 |
2 files changed, 17 insertions, 1 deletions
@@ -1602,6 +1602,18 @@ if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaries" != yes -a \ libs_softmmu="-lutil $libs_softmmu" fi +########################################## +# check if the compiler defines offsetof + +need_offsetof=yes +cat > $TMPC << EOF +#include <stddef.h> +int main(void) { struct s { int f; }; return offsetof(struct s, f); } +EOF +if compile_prog "" "" ; then + need_offsetof=no +fi + # End of CC checks # After here, no more $cc or $ld runs @@ -1901,6 +1913,9 @@ fi if test "$fdt" = "yes" ; then echo "CONFIG_FDT=y" >> $config_host_mak fi +if test "$need_offsetof" = "yes" ; then + echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak +fi # XXX: suppress that if [ "$bsd" = "yes" ] ; then @@ -2,6 +2,7 @@ #define QEMU_OSDEP_H #include <stdarg.h> +#include <stddef.h> #ifdef __OpenBSD__ #include <sys/types.h> #include <sys/signal.h> @@ -27,7 +28,7 @@ #define unlikely(x) __builtin_expect(!!(x), 0) #endif -#ifndef offsetof +#ifdef CONFIG_NEED_OFFSETOF #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER) #endif #ifndef container_of |