Date: 06/11/93



<an article forwarded from comp.os.linux>
Holy deja-vu Batman! I ran into this same problem. The trouble is that
/usr/include/netinet/in.h is out of date/incompatible with the new kernel.
/usr/include/linux/in.h is the file you want to use since it comes with
the kernel sources to begin with. What I did was to get rid of
/usr/include/netinet/in.h and replace it with a symbolic link to
/usr/include/linux/in.h. Alternatively, you could just replace it
with a file that just says: #include <linux/in.h>. I believe that
/usr/include/netinet/tcp.h should get the same treatment.

-Bill Paul
ghod@drycas.club.cc.cmu.edu

(forwarded by Jim Niemira)
========================================================================
From: Brian K. Teravskis <brian%hercules.vware.mn.org@skeggi.vware.mn.org>

To fix this problem you need to edit each in.h file
and put mutually exclusive ifdef's around the offending
enum definition like so:

in file /usr/include/linux/in.h

#ifndef _NETINET_IN_H
/* Standard well-defined IP protocols. */
enum {
    IPPROTO_IP = 0,
    BLAH, BLAH, BLAH
};
#endif

and in file /usr/include/netinet/in.h:

#ifndef _LINUX_IN_H
/* Standard well-defined IP protocols. */
enum {
    IPPROTO_IP = 0,
    BLAH, BLAH, BLAH
};
#endif

That should fix the problem.. Well it did for me anyway.
I saw this fix on the NET channel by the way.
========================================================================

I myself followed Bill Paul's advice, and made symbolic links.
Everything compiles fine.

Thanks again.
Deeran