lkml.org 
[lkml]   [2010]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: git 9c501935a3cd broke the strace build.
On Thu, 2010-01-14 at 04:57 -0600, Rob Landley wrote:
> > net: Support inclusion of <linux/socket.h> before <sys/socket.h>
> >
> > The following user-space program fails to compile:
> >
> > #include <linux/socket.h>
> > #include <sys/socket.h>
>
> Did it ever? Isn't #including both sys/thingy and a linux/thingy in the same
> program considered bad form?

I don't see why.

Even if a source file doesn't include both of them directly, they may
both be included indirectly.

[...]
> Now under 2.6.32 it dies with:
>
> linux/netlink.h:35: error: expected specifier-qualifier-list before
> 'sa_family_t'

I did actually ask for this to be reverted when I saw that it causes
breakage elsewhere, but David Miller insisted that my change was
correct.

> And later on the strace build breaks because it doesn't #include
> linux/netlink.h when it needs to. (Why yes, autoconf _is_ brittle and near-
> useless, thanks for noticing.)
>
> *shrug* I can patch the strace ./configure to include bits/socket.h instead of
> linux/socket.h,

Including libc headers under 'bits' is a bad idea.

> but what I can't understand is why _you_ couldn't. (What use
> case did this patch actually fix? Would reversing the order of those two
> headers have helped?)

I think that reversing the order of the two headers should work for
kernel headers before and after this change.

Ben.

--
Ben Hutchings
The generation of random numbers is too important to be left to chance.
- Robert Coveyou
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2010-01-14 15:09    [W:0.039 / U:0.288 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site