All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Hutchings <ben@decadent.org.uk>
To: Michel Machado <michel@digirati.com.br>
Cc: netdev@vger.kernel.org
Subject: Re: include/linux/netlink.h: problem when included by an application
Date: Sun, 07 Aug 2011 02:15:07 +0100	[thread overview]
Message-ID: <1312679707.2591.987.camel@deadeye> (raw)
In-Reply-To: <1312580748.2326.15.camel@Thor>

[-- Attachment #1: Type: text/plain, Size: 1534 bytes --]

On Fri, 2011-08-05 at 17:45 -0400, Michel Machado wrote:
> Hi there,
> 
>    When an application includes header <linux/netlink.h> obtained with
> 'make headers_install' or from /usr/include/, it produces the following
> error:
> 
> /usr/include/linux/netlink.h:31:2: error: expected
> specifier-qualifier-list before ‘sa_family_t’

Yeah, I know.

>    The error doesn't come up in the kernel because
> include/linux/netlink.h has the following line:
> 
> #include <linux/socket.h> /* for sa_family_t */
> 
>    However, <linux/socket.h> from /usr/include/ doesn't have sa_family_t
> because it's protected by an $ifdef __KERNEL__ in
> include/linux/socket.h.

Which is correct, as it would otherwise conflict with <sys/socket.h>.

Previous history:
http://thread.gmane.org/gmane.linux.debian.devel.bugs.general/622621
http://thread.gmane.org/gmane.linux.network/143380

>    A workaround for an application is to include <sys/socket.h> before
> <linux/netlink.h>. However, shouldn't include/linux/netlink.h be fixed?
> 
>    The simplest solution that I came up was replacing sa_family_t in
> include/linux/netlink.h to 'unsigned short' as header
> include/linux/socket.h does for struct __kernel_sockaddr_storage
> available to applications.

Maybe we should do something like this in <linux/socket.h>:

typedef unsigned short __kernel_sa_family_t;
#ifdef __KERNEL__
typedef __kernel_sa_family_t sa_family_t;
#endif

and then use __kernel_sa_family_t in <linux/netlink.h>.

Ben.



[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

  reply	other threads:[~2011-08-07  1:15 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-05 21:45 include/linux/netlink.h: problem when included by an application Michel Machado
2011-08-07  1:15 ` Ben Hutchings [this message]
2011-08-07 22:14   ` Michel Machado
2011-08-08  5:48     ` David Miller
2011-08-08 13:15       ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
2011-08-08 13:16         ` [PATCH 01/12] headers, pppox: Add missing #include to <linux/if_pppox.h> Ben Hutchings
2011-08-08 13:17         ` [PATCH 02/12] headers, ax25: Add missing #include to <linux/netrom.h>, <linux/rose.h> Ben Hutchings
2011-08-08 14:07           ` Ralf Baechle
2011-08-08 13:17         ` [PATCH 03/12] headers, pppol2tp: Use __kernel_pid_t in <linux/pppol2tp.h> Ben Hutchings
2011-08-08 13:18         ` [PATCH 04/12] headers, net: Use __kernel_sa_family_t in more definitions shared with userland Ben Hutchings
2011-08-08 13:18         ` [PATCH 05/12] headers, net: Define struct __kernel_sockaddr, replacing struct sockaddr Ben Hutchings
2011-08-08 13:19         ` [PATCH 06/12] headers, netfilter: Use kernel type names __u8, __u16, __u32 Ben Hutchings
2011-08-08 13:19         ` [PATCH 07/12] headers, tipc: Add missing #include to <linux/tipc_config.h> for userland Ben Hutchings
2011-08-08 13:20         ` [PATCH 08/12] headers, netfilter: Add missing #include <limits.h> " Ben Hutchings
2011-08-08 13:20         ` [PATCH 09/12] headers, xtables: Add missing #include <linux/netfilter.h> Ben Hutchings
2011-08-09 15:29           ` Patrick McHardy
2011-08-08 13:20         ` [PATCH 10/12] headers, can: Add missing #include to <linux/can/bcm.h> Ben Hutchings
2011-08-08 15:15           ` Oliver Hartkopp
2011-08-08 13:24         ` [PATCH 11/12] headers, scc: Add missing #include to <linux/scc.h> Ben Hutchings
2011-08-08 18:20           ` Ben Hutchings
2011-08-09  7:14             ` walter harms
2011-08-08 13:25         ` [PATCH 12/12] headers, ppp: Add missing #include to Ben Hutchings
2011-08-08 13:25           ` [PATCH 12/12] headers, ppp: Add missing #include to <linux/if_ppp.h> Ben Hutchings
2011-08-09  7:27           ` [PATCH 12/12] headers, ppp: Add missing #include to David Miller
2011-08-09  7:27             ` [PATCH 12/12] headers, ppp: Add missing #include to <linux/if_ppp.h> David Miller
2011-08-09 12:40             ` [PATCH 12/12] headers, ppp: Add missing #include to Ben Hutchings
2011-08-09 12:40               ` [PATCH 12/12] headers, ppp: Add missing #include to <linux/if_ppp.h> Ben Hutchings

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1312679707.2591.987.camel@deadeye \
    --to=ben@decadent.org.uk \
    --cc=michel@digirati.com.br \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.