David Laight wrote:
> On Thu, Feb 02, 2006 at 08:16:53AM -0800, Jeff Rizzo
wrote:
>
>> David-
>>
>> I'm not certain this is the specific commit that
caused it, but amd64
>> kernels which are not optimized (like, say,
GENERIC) fail to link due to
>> looking for bswap16 and bswap32. I looked things
over, but am not sure
>> of the correct way to fix this...
>>
>
> I'm not sure where I changed the effect of building
non-optimised kernels.
> I'm fairly sure the const-folding and __inline versions
were both inside
> #if __OPTIMISE__. I don't think it makes any sense for
it to be otherwise.
>
> libkern (or somewhere) may need to contain extern defns
of bswapnn()
> anyway - for cases where the #define doesn't apply (do
we allow the
> address of bswapnn() to be taken?)
>
> It is also worth noting that the libc functions are
__bswap16(), __bswap32()
> and bswap64() on i386 and amd64, whereas the kernel
ones never have the
> the leading underscores.
>
> I'll look at what happens to unoptimised code later.
>
> David
>
>
OK, I've discovered the source of this - I had COPTS+=-pipe
and
CFLAGS+=-pipe in my /etc/mk.conf . Without these, GENERIC
builds at the
default -O2 level, and consequently links. This at least
explains why
nobody else saw GENERIC fail to build.
+j
|