Binary package hint: linux-libc-dev
When I compile a file that includes /usr/include/linux/tcp.h, I get the following errors:
/usr/include/linux/tcp.h:72: error: ‘__u32 __fswab32(__u32)’ cannot appear in a constant-expression
/usr/include/linux/tcp.h:72: error: a function call cannot appear in a constant-expression
/usr/include/linux/tcp.h:73: error: ‘__u32 __fswab32(__u32)’ cannot appear in a constant-expression
/usr/include/linux/tcp.h:73: error: a function call cannot appear in a constant-expression
/usr/include/linux/tcp.h:74: error: ‘__u32 __fswab32(__u32)’ cannot appear in a constant-expression
/usr/include/linux/tcp.h:74: error: a function call cannot appear in a constant-expression
/usr/include/linux/tcp.h:75: error: ‘__u32 __fswab32(__u32)’ cannot appear in a constant-expression
/usr/include/linux/tcp.h:75: error: a function call cannot appear in a constant-expression
/usr/include/linux/tcp.h:76: error: ‘__u32 __fswab32(__u32)’ cannot appear in a constant-expression
/usr/include/linux/tcp.h:76: error: a function call cannot appear in a constant-expression
/usr/include/linux/tcp.h:77: error: ‘__u32 __fswab32(__u32)’ cannot appear in a constant-expression
/usr/include/linux/tcp.h:77: error: a function call cannot appear in a constant-expression
/usr/include/linux/tcp.h:78: error: ‘__u32 __fswab32(__u32)’ cannot appear in a constant-expression
/usr/include/linux/tcp.h:78: error: a function call cannot appear in a constant-expression
/usr/include/linux/tcp.h:79: error: ‘__u32 __fswab32(__u32)’ cannot appear in a constant-expression
/usr/include/linux/tcp.h:79: error: a function call cannot appear in a constant-expression
/usr/include/linux/tcp.h:80: error: ‘__u32 __fswab32(__u32)’ cannot appear in a constant-expression
/usr/include/linux/tcp.h:80: error: a function call cannot appear in a constant-expression
/usr/include/linux/tcp.h:81: error: ‘__u32 __fswab32(__u32)’ cannot appear in a constant-expression
/usr/include/linux/tcp.h:81: error: a function call cannot appear in a constant-expression
The version of the linux-libc-dev package I have installed is: 2.6.31-16.52_i386
I am running Ubuntu 9.10 with the latest updates.
The same file compiles fine on another Ubuntu installation, having linux-libc-dev package linux-libc-dev_2.6.28-17.58.i386
and Ubuntu 9.04 with the latest updates.
@Yusuf -- we have tested this here and it seems to work as expected when compiling a simple source (as below), this was using the 2.6.31-17.54 headers and gcc 4.4.1:
#include <stdio.h>
#include <linux/tcp.h>
int main(int argc, char *argv[])
{
printf("HELLO %d\n", TCP_FLAG_CWR);
}
Please could you include a minimal failing example and indicate the version of gcc you are using.