Re: Cleanup possibility in asm-i386/string.h

From: Kyle Moffett
Date: Thu Feb 09 2006 - 19:59:06 EST


On Feb 09, 2006, at 19:23, Andi Kleen wrote:
On Friday 10 February 2006 01:05, Adrian Bunk wrote:
On Tue, Feb 07, 2006 at 01:39:50PM +0100, Roman Zippel wrote:
Hi,

On Tue, 7 Feb 2006, Andi Kleen wrote:

This means you define a prototype for the builtin function and not for the normal function. I'm not sure this is really intended.

What good would be a prototype for a symbol that is defined to a different symbol?

The point is you define a prototype for a builtin function, I'm not sure that's a good thing to do. Actually I'd prefer to remove -ffreestanding again, especially because it disables builtin functions, which we have to painfully enable all again one by one, instead of leaving it just to gcc.

I remember playing with using more gcc builtins in the kernel some time ago, and some gcc builtin used a different library function, which was a function the kernel did not supply.

It works fine on x86-64. If something is missing it can be also supplied.

I don't remember exactly, but I think the problem was something like this (even if not this exact case, it was similarly obscure): If - ffreestanding was not specified, then the following code would generate an implicit call to memcpy() or some other library function.

struct a {
[... large struct with lots of fields ...]
}

struct a first = { ..... };
[... more code ...];
struct a second = first; /* <== This line would generate implicit memcpy */

Cheers,
Kyle Moffett

--
Diplomacy involves walking softly and _carrying_ a big stick. Actually using the big stick means the diplomacy part failed.
-- Rob Landley



-
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/