Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Jan 2011 03:49:26 +1000
From:      Da Rock <freebsd-questions@herveybayaustralia.com.au>
To:        freebsd-questions@freebsd.org
Subject:   Re: include file not found
Message-ID:  <4D405EA6.2020606@herveybayaustralia.com.au>
In-Reply-To: <AANLkTimqd0eu0vaUAs_HTy1Cp1eBcYO%2BxBWF8M4kNp3G@mail.gmail.com>
References:  <AANLkTimqd0eu0vaUAs_HTy1Cp1eBcYO%2BxBWF8M4kNp3G@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 01/27/11 00:21, b. f. wrote:
> Da Rock wrote:
>    
>> gcc -Wall -Wformat-security -Wno-format-zero-length  -g -O3 -I.
>> -I/usr/include -I/usr/local/include  -DLIBDIR='"/lib/l2tpns"'
>> -DETCDIR='"/etc/l2tpns"' -DSTATISTICS -DSTAT_CALLS -DRINGBUFFER
>> -DHAVE_EPOLL -DBGP -c -o arp.o arp.c
>> In file included from arp.c:8:
>> /usr/include/net/if_arp.h:88: error: field 'arp_pa' has incomplete type
>> /usr/include/net/if_arp.h:89: error: field 'arp_ha' has incomplete type
>>      
> You seem to be missing definitions of struct sockaddr, so probably
> sys/socket.h is needed.
>    
Got that one.
>    
>> In file included from arp.c:9:
>> /usr/include/netinet/if_ether.h:96: error: field 'sin_addr' has
>> incomplete type
>> /usr/include/netinet/if_ether.h:97: error: field 'sin_srcaddr' has
>> incomplete type
>>      
> Here it looks like you're missing struct in_addr, which is in
> sys/netinet/in.h (and also arpa/inet.h).
>    
And that one- missed arpa/inet.h though :)
>    
>> arp.c:20: error: 'ETH_ALEN' undeclared here (not in a function)
>> arp.c: In function 'sendarp':
>> arp.c:29: error: storage size of 'sll' isn't known
>> arp.c:54: error: 'PF_PACKET' undeclared (first use in this function)
>> arp.c:54: error: (Each undeclared identifier is reported only once
>> arp.c:54: error: for each function it appears in.)
>> arp.c:54: error: 'ETH_P_RARP' undeclared (first use in this function)
>> arp.c:57: error: 'AF_PACKET' undeclared (first use in this function)
>>      
> Some of these missing parameters are Linux-specific.
>
>    
>> arp.c:29: warning: unused variable 'sll'
>> gmake: *** [arp.o] Error 1
>>      
> As you can see, porting requires some care.  It's not only a matter of
> including different headers; there are some other differences that may
> require patches, and we won't be able to go through this step-by-step
> on the list.  You can see what FreeBSD headers a similar FreeBSD
> application needs by looking at src/usr.sbin/arp, and you can get some
> help with the Linux->FreeBSD part by looking at /sys/compat/linux,
>    
Yes, I was thinking of asking that question. linux/packet.h system, is 
there a compatible bsd version to this (even deprecated?)? Mind you, 
from what I've read it could even be deprecated itself :) It was 
released in 2002 after all. According to some references, you're 
supposed to be using kernel/if_ether.h. The code I'm building doesn't 
appear to have changed much in nearly a year, so I don't know.
> http://svn.freebsd.org/viewvc/base/projects/ofed/head/sys/ofed/include/
>
> and
>
> http://fxr.watson.org/
>
> ; and you might be able to cheat a bit by using a compatibility layer
> like devel/gnulib, but you're going to have to go through this
> carefully on your own.
>    
I'm hoping to win this one myself; I've been trying to get a better 
handle on the internals of FreeBSD so I can do more patching when things 
go wrong and be able to submit those instead of complaining its just 
'broke'. This just might help me 'cut my teeth'. I might ask just a few 
dumb questions along the way though :)

One thing I don't understand, though, apparently this code just builds 
on FreeBSD according to the site I'm following (7.2). I'm going to have 
a closer look at that and see whats up...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D405EA6.2020606>