Re: Socket header file

Richard Gooch (rgooch@atnf.csiro.au)
Thu, 19 Dec 1996 22:23:56 +1100


Alan Modra writes:
>
> >root@analogic.com (Richard B. Johnson)
> > /usr/include/linux/socket.h: unsigned char cmsg_data[0];
> > This should probably be:
> > unsigned char *cmsg_data;
>
> No, definitely not. It's correct as it is. The structure is
> dynamically allocated with cmsg_data[] a variable length array.

I have complained to Linus about this a few times before, with no
response. The problem with the above construct is that you cannot
compile with gcc -Wall -pedantic-errors
Note that I'm referring to compiling *user code*, not kernel
code. Does this particular structure have to be visible outside the
kernel? If not, can someone please put an #ifdef around it?
If this structure needs to be visible outside the kernel, then this
structure needs to be reconsidered. It is really *extremely annoying*
to have to edit the file whenever I download a new kernel, just so I
can compile my userland networking code.

Regards,

Richard....