OSDN Git Service

Add #defines needed by OpenSolaris, fix breakage by the #defines
authorBlue Swirl <blauwirbel@gmail.com>
Sat, 12 Sep 2009 12:36:04 +0000 (12:36 +0000)
committerBlue Swirl <blauwirbel@gmail.com>
Sat, 12 Sep 2009 12:36:04 +0000 (12:36 +0000)
We need to define _XOPEN_SOURCE and __EXTENSIONS__ macros in order to get
CMSG_ and TIOCWIN macros defined. But then _POSIX_C_SOURCE gets defined, which
is (incorrectly) used as an indicator for existence of posix_memalign() in osdep.c.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
configure
osdep.c

index 646da75..1160cf6 100755 (executable)
--- a/configure
+++ b/configure
@@ -326,6 +326,10 @@ SunOS)
     audio_drv_list="oss"
   fi
   audio_possible_drivers="oss sdl"
+# needed for CMSG_ macros in sys/socket.h
+  QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
+# needed for TIOCWIN* defines in termios.h
+  QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS"
   QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS"
   LIBS="-lsocket -lnsl -lresolv $LIBS"
 ;;
diff --git a/osdep.c b/osdep.c
index 90cc95f..fd8bbd7 100644 (file)
--- a/osdep.c
+++ b/osdep.c
@@ -48,7 +48,7 @@
 #include "sysemu.h"
 #include "qemu_socket.h"
 
-#if !defined(_POSIX_C_SOURCE) || defined(_WIN32)
+#if !defined(_POSIX_C_SOURCE) || defined(_WIN32) || defined(__sun__)
 static void *oom_check(void *ptr)
 {
     if (ptr == NULL) {
@@ -87,7 +87,7 @@ void qemu_vfree(void *ptr)
 
 void *qemu_memalign(size_t alignment, size_t size)
 {
-#if defined(_POSIX_C_SOURCE)
+#if defined(_POSIX_C_SOURCE) && !defined(__sun__)
     int ret;
     void *ptr;
     ret = posix_memalign(&ptr, alignment, size);