Messages in this thread | | | From | Ben Hutchings <> | Date | Thu, 14 Jan 2010 14:06:45 +0000 | Subject | Re: 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] | |