Hey all, I appear to be having an issue compiling a simple program under Fedora Core 1. the program is as follows:
#include <linux/ip.h> #include <stdio.h>
int main() {
printf("Foo\n"); return(0); }
And attempting to compile it gives me:
[tmacd@bahamut src]$ gcc -g -O2 -Wall -c test.c In file included from test.c:1: /usr/include/linux/ip.h:95: parse error before `__u8' /usr/include/linux/ip.h:95: warning: no semicolon at end of struct or union /usr/include/linux/ip.h:101: warning: data definition has no type or storage class /usr/include/linux/ip.h:102: parse error before `tot_len' /usr/include/linux/ip.h:102: warning: data definition has no type or storage class /usr/include/linux/ip.h:103: parse error before `id' /usr/include/linux/ip.h:103: warning: data definition has no type or storage class /usr/include/linux/ip.h:104: parse error before `frag_off' /usr/include/linux/ip.h:104: warning: data definition has no type or storage class /usr/include/linux/ip.h:105: parse error before `ttl' /usr/include/linux/ip.h:105: warning: data definition has no type or storage class /usr/include/linux/ip.h:106: parse error before `protocol' /usr/include/linux/ip.h:106: warning: data definition has no type or storage class /usr/include/linux/ip.h:107: parse error before `check' /usr/include/linux/ip.h:107: warning: data definition has no type or storage class /usr/include/linux/ip.h:108: parse error before `saddr' /usr/include/linux/ip.h:108: warning: data definition has no type or storage class /usr/include/linux/ip.h:109: parse error before `daddr' /usr/include/linux/ip.h:109: warning: data definition has no type or storage class [tmacd@bahamut src]$
This is just an example of a problem that's been keeping me from compiling a more complex program, which compiled under RH9, but doesn't compile due to header file problems under Fedora. Is there a prerequisite to including linux/ip.h, or am I hitting some other issue?
Any insight is much appreciated,
Todd
Todd MacDermid wrote:
Hey all, I appear to be having an issue compiling a simple program under Fedora Core 1. the program is as follows:
#include <linux/ip.h> #include <stdio.h>
int main() {
printf("Foo\n"); return(0); }
And attempting to compile it gives me:
[tmacd@bahamut src]$ gcc -g -O2 -Wall -c test.c In file included from test.c:1: /usr/include/linux/ip.h:95: parse error before `__u8' /usr/include/linux/ip.h:95: warning: no semicolon at end of struct or union /usr/include/linux/ip.h:101: warning: data definition has no type or storage class /usr/include/linux/ip.h:102: parse error before `tot_len' /usr/include/linux/ip.h:102: warning: data definition has no type or storage class /usr/include/linux/ip.h:103: parse error before `id' /usr/include/linux/ip.h:103: warning: data definition has no type or storage class /usr/include/linux/ip.h:104: parse error before `frag_off' /usr/include/linux/ip.h:104: warning: data definition has no type or storage class /usr/include/linux/ip.h:105: parse error before `ttl' /usr/include/linux/ip.h:105: warning: data definition has no type or storage class /usr/include/linux/ip.h:106: parse error before `protocol' /usr/include/linux/ip.h:106: warning: data definition has no type or storage class /usr/include/linux/ip.h:107: parse error before `check' /usr/include/linux/ip.h:107: warning: data definition has no type or storage class /usr/include/linux/ip.h:108: parse error before `saddr' /usr/include/linux/ip.h:108: warning: data definition has no type or storage class /usr/include/linux/ip.h:109: parse error before `daddr' /usr/include/linux/ip.h:109: warning: data definition has no type or storage class [tmacd@bahamut src]$
This is just an example of a problem that's been keeping me from compiling a more complex program, which compiled under RH9, but doesn't compile due to header file problems under Fedora. Is there a prerequisite to including linux/ip.h, or am I hitting some other issue?
Any insight is much appreciated,
Add: #include <linux/types.h>
and it should be fine.
linux/ip.h should probably include it itself. It wasn't in bugzilla, so I added it.
Rather than specify specific linux header files, I recommend you use
#include <stdlib.h> #include <stdio.h>
Bevan C. Bennett wrote:
Todd MacDermid wrote:
Hey all, I appear to be having an issue compiling a simple program under Fedora Core 1. the program is as follows:
#include <linux/ip.h> #include <stdio.h>
int main() {
printf("Foo\n"); return(0); }
And attempting to compile it gives me:
[tmacd@bahamut src]$ gcc -g -O2 -Wall -c test.c In file included from test.c:1: /usr/include/linux/ip.h:95: parse error before `__u8' /usr/include/linux/ip.h:95: warning: no semicolon at end of struct or union /usr/include/linux/ip.h:101: warning: data definition has no type or storage class /usr/include/linux/ip.h:102: parse error before `tot_len' /usr/include/linux/ip.h:102: warning: data definition has no type or storage class /usr/include/linux/ip.h:103: parse error before `id' /usr/include/linux/ip.h:103: warning: data definition has no type or storage class /usr/include/linux/ip.h:104: parse error before `frag_off' /usr/include/linux/ip.h:104: warning: data definition has no type or storage class /usr/include/linux/ip.h:105: parse error before `ttl' /usr/include/linux/ip.h:105: warning: data definition has no type or storage class /usr/include/linux/ip.h:106: parse error before `protocol' /usr/include/linux/ip.h:106: warning: data definition has no type or storage class /usr/include/linux/ip.h:107: parse error before `check' /usr/include/linux/ip.h:107: warning: data definition has no type or storage class /usr/include/linux/ip.h:108: parse error before `saddr' /usr/include/linux/ip.h:108: warning: data definition has no type or storage class /usr/include/linux/ip.h:109: parse error before `daddr' /usr/include/linux/ip.h:109: warning: data definition has no type or storage class [tmacd@bahamut src]$ This is just an example of a problem that's been keeping me from compiling a more complex program, which compiled under RH9, but doesn't compile due to header file problems under Fedora. Is there a prerequisite to including linux/ip.h, or am I hitting some other issue?
Any insight is much appreciated,
Add: #include <linux/types.h>
and it should be fine.
linux/ip.h should probably include it itself. It wasn't in bugzilla, so I added it.
On Tue, Mar 02, 2004 at 05:32:13PM -0500, Andrew Robert arobert@townisp.com st ated:
Rather than specify specific linux header files, I recommend you use
#include <stdlib.h> #include <stdio.h>
I'm not #including them to make my Foo World program work, I'm just doing that as a demonstration.
The actual software I'm having issues compiling is libdnet, which does use low-level packet structure information. I'm not aware of a good way to make that low-level interface work without referencing linux header files. The offending file is src/fw-ipchains.c, and the software is available at libdnet.sourceforge.net.
BTW, the linux/types.h worked like a champ on ip.h, thanks very much for the help, but I'm now hitting issues compiling files that #include <linux/tcp.h>. Example code would be:
#include <endian.h> #include <netinet/in.h> #include <byteswap.h> #include <linux/types.h> #include <linux/ip.h> #include <linux/tcp.h> #include <stdio.h>
int main() {
printf("Foo\n"); return(0); }
And the errors would be:
[tmacd@bahamut src]$ gcc -g -O2 -Wall -c test.c In file included from /usr/include/linux/tcp.h:21, from test.c:7: /usr/include/asm/byteorder.h:6: warning: #warning using private kernel header; include <endian.h> instead! In file included from test.c:7: /usr/include/linux/tcp.h:105: braced-group within expression allowed only inside a function /usr/include/linux/tcp.h:105: enumerator value for `TCP_FLAG_CWR' not integer constant /usr/include/linux/tcp.h:106: parse error before `__u32' /usr/include/linux/tcp.h:107: parse error before `__u32' /usr/include/linux/tcp.h:108: parse error before `__u32' /usr/include/linux/tcp.h:109: parse error before `__u32' /usr/include/linux/tcp.h:110: parse error before `__u32' /usr/include/linux/tcp.h:111: parse error before `__u32' /usr/include/linux/tcp.h:112: parse error before `__u32' /usr/include/linux/tcp.h:113: parse error before `__u32' /usr/include/linux/tcp.h:114: parse error before `__u32'
I'm #including endian, but it doesn't seem to be picking up on the #definition of htonl(). If I #include <bits/byteswap.h> directly, I can get the parse erros to go away, but then it scolds me about #including <bits/byteswap.h>, and that I should #include <byteswap.h> directly. I'm doing that, but then it doesn't seem to be picking up on the htonl(), for whatever reason.
Thanks for helping me play detective,
Todd
Bevan C. Bennett wrote:
Todd MacDermid wrote:
Hey all, I appear to be having an issue compiling a simple program under Fedora Core 1. the program is as follows:
#include <linux/ip.h> #include <stdio.h>
int main() {
printf("Foo\n"); return(0); }
And attempting to compile it gives me:
[tmacd@bahamut src]$ gcc -g -O2 -Wall -c test.c In file included from test.c:1: /usr/include/linux/ip.h:95: parse error before `__u8' /usr/include/linux/ip.h:95: warning: no semicolon at end of struct or union /usr/include/linux/ip.h:101: warning: data definition has no type or storage class /usr/include/linux/ip.h:102: parse error before `tot_len' /usr/include/linux/ip.h:102: warning: data definition has no type or storage class /usr/include/linux/ip.h:103: parse error before `id' /usr/include/linux/ip.h:103: warning: data definition has no type or storage class /usr/include/linux/ip.h:104: parse error before `frag_off' /usr/include/linux/ip.h:104: warning: data definition has no type or storage class /usr/include/linux/ip.h:105: parse error before `ttl' /usr/include/linux/ip.h:105: warning: data definition has no type or storage class /usr/include/linux/ip.h:106: parse error before `protocol' /usr/include/linux/ip.h:106: warning: data definition has no type or storage class /usr/include/linux/ip.h:107: parse error before `check' /usr/include/linux/ip.h:107: warning: data definition has no type or storage class /usr/include/linux/ip.h:108: parse error before `saddr' /usr/include/linux/ip.h:108: warning: data definition has no type or storage class /usr/include/linux/ip.h:109: parse error before `daddr' /usr/include/linux/ip.h:109: warning: data definition has no type or storage class [tmacd@bahamut src]$ This is just an example of a problem that's been keeping me from compiling a more complex program, which compiled under RH9, but doesn't compile due to header file problems under Fedora. Is there a prerequisite to including linux/ip.h, or am I hitting some other issue?
Any insight is much appreciated,
Add: #include <linux/types.h>
and it should be fine.
linux/ip.h should probably include it itself. It wasn't in bugzilla, so I added it.
-- Thank you, Andrew Robert Principal Systems Analyst TS&S Infrastructure Support - OpenVMS Massachusetts Financial Services Phone: (617) 954-5882 Pager: (781) 764-7321 E-mail: arobert@mfs.com
-- fedora-list mailing list fedora-list@redhat.com To unsubscribe: http://www.redhat.com/mailman/listinfo/fedora-list