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
Attachment:
signature.asc
Description: OpenPGP digital signature