Re: Problems Building Bluetooth with K6 and CONFIG_REGPARM

From: Brian Gerst
Date: Thu Sep 08 2005 - 11:48:31 EST


Horms wrote:
Hi Andy,

that does indeed seem to be a problem. I have narrowed it down to
a combination of using K6 and CONFIG_REGPARM. Hunting around a bit
I found this http://my.execpc.com/~geezer/osd/gotchas/, which
suggests the problem is that the asm in question tries to add a register
to the clobber list which is not available. This makes sense,
I guess REGPARM is using edx, so inline assembly can't.

I've CCed the bluetooth maintainers and lkml, hopefully someone there
will have some input on how to resolve this problem, as inline assembly
isn't my strong point and the problem seems to manifest in Linus' current
git tree.

The relevant code is the following call to BUILDIO(b,b,char) towards the
bottom of include/asm/io.h

BUILDIO is as follows, and I am guessing it is the "Nd"(port) and
possibley "d"(port) portions that are problematic.

Sounds like a compiler bug, especially since changing the CPU type fixes it. What version of GCC?

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