[RFC] arm: use built-in byte swap function

Nicolas Pitre nico at fluxnic.net
Wed Feb 20 08:36:25 EST 2013


On Wed, 20 Feb 2013, Woodhouse, David wrote:

> On Tue, 2013-02-19 at 22:17 -0500, Nicolas Pitre wrote:
> > 
> > > +$(obj)/bswapsdi2.o: $(obj)/../../../../arch/$(SRCARCH)/lib/bswapsdi2.o
> > > +     $(call cmd,shipped)
> > > +
> > 
> > I don't think you can get away with this.  The decompressor code is 
> > compiled with -fpic and the main kernel is not.  Most toolchains do mark 
> > object files with some flags to prevent the link of incompatible objects 
> > together (normally pic and non pic objects are not compatible even if in 
> > this very simple case that would not matter).  Maybe you are able to 
> > link zImage successfully simply because no references to __bswap* needed 
> > to be resolved and therefore the linker didn't need to search/include 
> > that object?
> 
> This, and the issue with -Os vs. -O2, make me inclined to suggest that
> we should just provide an asm version of these functions instead of
> using the compiler.

You'll have the same issue wrt the above whether or not the source file 
is C or assembly.


Nicolas



More information about the linux-arm-kernel mailing list