Re: Cleanup possibility in asm-i386/string.h
- From: Roman Zippel <zippel@xxxxxxxxxxxxxx>
- Date: Tue, 7 Feb 2006 13:00:11 +0100 (CET)
Hi,
On Tue, 7 Feb 2006, Andi Kleen wrote:
If you feel the need to remove some more code: Now that gcc 2.95 isn't supported
anymore there isn't really a need to keep the handwritten inline string functions
in asm-i386/string.h around. Just declaring them as normal externs will cause
gcc to use its builtin expansions, which are typically better than these old inline
functions with inline assembly.
For out of line the C versions in lib/string.c can be used (by not setting __ARCH_*)
x86-64 did it like this forever and I guess it would be valuable cleanup for i386 too.
The only problem is that we compile with -ffreestanding which implies
-fno-builtin, so just declaring them as normal externs is not enough and
you have to something like this:
#define __HAVE_ARCH_MEMSET
extern void *memset(void *, int, __kernel_size_t);
#define memset(d, c, n) __builtin_memset(d, c, n)
(BTW you do this already in x86-64.)
Another problem here is because of -fno-builtin it's not easy to use the
generic functions as fallback. x86-64 basically does this:
#define strlen __builtin_strlen
size_t strlen(const char * s);
#ifndef __HAVE_ARCH_STRLEN
extern __kernel_size_t strlen(const char *);
#endif
This means you define a prototype for the builtin function and not for the
normal function. I'm not sure this is really intended.
bye, Roman
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: Cleanup possibility in asm-i386/string.h
- From: Andi Kleen
- Re: Cleanup possibility in asm-i386/string.h
- References:
- Cleanup possibility in asm-i386/string.h
- From: Andi Kleen
- Cleanup possibility in asm-i386/string.h
- Prev by Date: Re: [PATCH 1/5] cpuset memory spread basic implementation
- Next by Date: Re: non-fakeraid controllers
- Previous by thread: Cleanup possibility in asm-i386/string.h
- Next by thread: Re: Cleanup possibility in asm-i386/string.h
- Index(es):
Relevant Pages
|