List Info

Thread: CVS commit: src/sys




CVS commit: src/sys
user name
2006-02-02 16:16:53
David Laight wrote:
> Module Name:	src
> Committed By:	dsl
> Date:		Mon Jan 30 22:46:36 UTC 2006
>
> Modified Files:
> 	src/sys/arch/amd64/include: byte_swap.h
> 	src/sys/arch/arm/include: byte_swap.h
> 	src/sys/arch/hppa/include: byte_swap.h
> 	src/sys/arch/i386/include: byte_swap.h
> 	src/sys/arch/m68k/include: byte_swap.h
> 	src/sys/arch/pc532/include: byte_swap.h
> 	src/sys/arch/sh5/include: byte_swap.h
> 	src/sys/arch/vax/include: byte_swap.h
> 	src/sys/sys: bswap.h
>
> Log Message:
> Move all the stuff that detects bswapxx(constant) into
the MI sys/bswap.h
> Put the minimum to define the required inline assembler
or C into the MD files.
> NB: there may be some fallout from this!
>
>   

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

+j



CVS commit: src/sys
user name
2006-02-03 18:16:13
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

-- 
David Laight: davidl8s.co.uk
CVS commit: src/sys
user name
2006-02-04 01:15:19
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


[1-3]

about | contact  Other archives ( Real Estate discussion Medical topics )