Messages in this thread Patch in this message | | | Date | Tue, 30 Oct 2007 23:20:25 +0100 | From | Sam Ravnborg <> | Subject | Re: tipc_config.h requires linux/string.h, which does not exist in exported headers |
| |
On Tue, Oct 30, 2007 at 03:05:37PM -0700, David Miller wrote: > From: David Miller <davem@davemloft.net> > Date: Tue, 30 Oct 2007 14:59:26 -0700 (PDT) > > > I think the thing to do is just __KERNEL__ protect the > > <linux/string.h> include and require userspace to > > include <string.h> itself when using these headers. > > > > That's what I'm testing right now. > > > > I'm pretty sure those inlines are indeed used by userspace. > > Actually, I'm tempted to put <string.h> in the ifndef __KERNEL__ > block of that header.
Something like this.. I like it - much better than adding string.h to unidef-y. PS - had not pulled latest -linus - so you must update Kbuild. PPS - tipc.h should be exported too as I understood Stephen.
Sam
diff --git a/include/linux/tipc_config.h b/include/linux/tipc_config.h index b0c916d..30ddf1e 100644 --- a/include/linux/tipc_config.h +++ b/include/linux/tipc_config.h @@ -38,7 +38,6 @@ #define _LINUX_TIPC_CONFIG_H_ #include <linux/types.h> -#include <linux/string.h> #include <asm/byteorder.h> /* @@ -390,7 +389,8 @@ struct tipc_cfg_msg_hdr #define TCM_LENGTH(datalen) (sizeof(struct tipc_cfg_msg_hdr) + datalen) #define TCM_SPACE(datalen) (TCM_ALIGN(TCM_LENGTH(datalen))) #define TCM_DATA(tcm_hdr) ((void *)((char *)(tcm_hdr) + TCM_LENGTH(0))) - +#ifndef __KERNEL__ +#include <string.h> static inline int TCM_SET(void *msg, __u16 cmd, __u16 flags, void *data, __u16 data_len) { @@ -406,5 +406,5 @@ static inline int TCM_SET(void *msg, __u16 cmd, __u16 flags, memcpy(TCM_DATA(msg), data, data_len); return TCM_SPACE(data_len); } - +#endif /* ifndef __KERNEL__ */ #endif - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |