On 15/07/10 11:19, Patrick McHardy wrote: > Am 12.07.2010 19:00, schrieb Pablo Neira Ayuso: >> Currently, libnl and libnetfilter_queue include in one of their >> user-space header files an ad-hoc definition of aligned_be64. >> However, applications that use the BSD socket API to communicate >> via Netlink sockets (ie. those that do not use these libraries) >> would need to define this type by hand if they include the >> kernel-space header nfnetlink_queue.h. >> >> This patch adds the definition of aligned_bed64 for user-space >> applications in the kernel header. Otherwise, they have to define >> it to avoid the following compilation problem: >> >> /usr/include/linux/netfilter/nfnetlink_queue.h:28: error: expected specifier-qualifier-list before ‘aligned_be64’ > > Why can't these applications simply include linux/types.h? Including it doesn't fix the problem here: #include <linux/types.h> #include <linux/netfilter/nfnetlink_queue.h> I still get: /usr/include/linux/netfilter/nfnetlink_queue.h:28: error: expected specifier-qualifier-list before ‘aligned_be64’ aligned_be64 is only define in the kernel (it's included under the __KERNEL__ definition). >> I know, this is ugly but I think that user-space Netlink applications >> should compile with the only need of including the kernel-space >> header that contains the protocol definitions. > > I disagree, it makes no sense to re-define this for every header file. > They can either include linux/types.h, or we could automatically include > it in the files requiring it. This is how it looks now in user-space: #include <...> #ifndef aligned_be64 #define aligned_be64 u_int64_t __attribute__((aligned(8))) #endif #include <linux/netfilter/nfnetlink_queue.h> -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html