qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] CMSG_SPACE() causing compile time error on Mac OS X


From: Programmingkid
Subject: [Qemu-devel] CMSG_SPACE() causing compile time error on Mac OS X
Date: Sun, 17 Jan 2016 17:23:44 -0500

I was wondering if you had problems compiling QEMU on Mac OS X recently. On my 
system, the channel-socket.c file causes this error:

io/channel-socket.c: In function 'qio_channel_socket_writev':
io/channel-socket.c:497:18: error: variable-sized object may not be initialized
     char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)] = { 0 };
  
As a test I made this simple program:

#include <sys/socket.h>
#include <stdio.h>

int main (int argc, char * const argv[]) {
    printf("GCC version = %d.%d.%d\n", __GNUC__, __GNUC_MINOR__, 
__GNUC_PATCHLEVEL__);
    char control[CMSG_SPACE(sizeof(int) * 16)] = { 0 };
    control[0] = 'a';  // just to eliminate a warning
    return 0;
}

When compiling under Xcode, the program does compile and run. It prints "GCC 
version = 4.2.1".

When I try to compile it under gcc 4.2.1 using just the terminal, I see this 
error message:
main.cpp: In function ‘int main(int, char* const*)’:
main.cpp:6: error: size of array ‘control’ is not an integral 
constant-expression

Why there is a difference between XCode and the terminal I have no idea. 

When compiling it under gcc 4.9.2, it compiles and runs without problem. 

I have set the configure option for cc to gcc-4.9 with this "-cc=gcc-4.9". So 
the error message makes me believe that the wrong compiler is being used. 

This is the full configure command options I used:
./configure --cxx=gcc-4.9 --cc=gcc-4.9 --objcc=gcc-4.9 --disable-gtk 
--disable-sdl --target-list=ppc-softmmu,i386-softmmu

Any insight as to what could be wrong? 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]