On Jan 15, 2016, at 6:56 PM, Eric Blake wrote: > On 01/13/2016 02:19 PM, Programmingkid wrote: >> This code causes an error to occur during compiling: >> >> char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)] = { 0 }; >> >> It is located at line 496 in io/channel-socket.c. >> >> Here is the full error message: >> io/channel-socket.c: In function 'qio_channel_socket_writev': >> io/channel-socket.c:496:18: error: variable-sized object may not be >> initialized >> char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)] = { 0 }; >> >> This is from gcc 4.9 running on Mac OS 10.6.8. > > Uggh. That sounds like a bug in the Mac OS headers, for making > CMSG_SPACE() not be a compile-time constant. We do NOT want to be using > variable-sized objects here, so we need a compile-time constant for the > array size, even if we have to work around your platform's borked headers. > Can you capture what that line expands to after pre-processing, to see > if my guess is right?
It expands to 76.