[S390] allow usage of string functions in linux/string.h
In introducing a trivial "strstarts()" function in linux/string.h, we hit the following error on s390: In file included from include/linux/bitmap.h:8, from include/linux/cpumask.h:142, from include/linux/smp.h:12, from /home/rusty/devel/kernel/patches/linux-2.6/arch/s390/include/asm/spinlock.h:14, from include/linux/spinlock.h:88, from include/linux/seqlock.h:29, from include/linux/time.h:8, from include/linux/stat.h:60, from include/linux/module.h:10, from arch/s390/lib/string.c:13: include/linux/string.h: In function 'strstarts': include/linux/string.h:124: error: implicit declaration of function 'strlen' include/linux/string.h:124: warning: incompatible implicit declaration of built-in function 'strlen' Because when including asm/string.h from arch/s390/lib/string.c we don't declare the string ops we are about to define, and linux/string.h barfs. The fix is to declare them in this IN_ARCH_STRING_C case, but in general I wonder if there's a neater fix. Reported-by: linux-next Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
9c8a08d7a7
commit
6faf250789
|
@ -135,7 +135,13 @@ static inline size_t strnlen(const char * s, size_t n)
|
|||
: "+a" (end), "+a" (tmp) : "d" (r0) : "cc");
|
||||
return end - s;
|
||||
}
|
||||
|
||||
#else /* IN_ARCH_STRING_C */
|
||||
void *memchr(const void * s, int c, size_t n);
|
||||
void *memscan(void *s, int c, size_t n);
|
||||
char *strcat(char *dst, const char *src);
|
||||
char *strcpy(char *dst, const char *src);
|
||||
size_t strlen(const char *s);
|
||||
size_t strnlen(const char * s, size_t n);
|
||||
#endif /* !IN_ARCH_STRING_C */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
|
Loading…
Reference in a new issue