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