Thread (1 message) 1 message, 1 author, 2007-01-19

Re: Kernel headers - linux-atm userspace build broken by recent change; __be16 undefined

From: Adrian Bunk <hidden>
Date: 2007-01-19 14:37:21
Also in: lkml

On Thu, Jan 18, 2007 at 09:22:52PM +0000, Andrew Walrond wrote:
Don't know exactly when this change went in, but it's not in 2.6.18.3 
and is in 2.6.19.2+

 $ diff linux/include/linux/if_arp.h linux-2.6/include/linux/if_arp.h
133,134c133,134
<       unsigned short  ar_hrd;         /* format of hardware address   */
<       unsigned short  ar_pro;         /* format of protocol address   */
---
quoted
      __be16          ar_hrd;         /* format of hardware address   */
      __be16          ar_pro;         /* format of protocol address   */
137c137
<       unsigned short  ar_op;          /* ARP opcode (command)         */
---
quoted
      __be16          ar_op;          /* ARP opcode (command)         */

This causes the linux-atm userspace compile to fail like this:

In file included from arp.c:19:
/usr/include/linux/if_arp.h:133: error: expected 
specifier-qualifier-list before '__be16'

I guess if_arp.h needs to include include/linux/byteorder/big_endian.h?
No, linux/types.h

But what bothers me more about if_arp.h is that it is one of the
headers using "struct sockaddr" in userspace, but as far as I can see we 
aren't exporting it in any header.

This seems to work since glibc is providing the struct, but this looks 
a bit fishy.
Andrew Walrond
cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help