> I'm compiling 2.5.45 for 486.
>
> For example, exit.c got compiled with this command:
>
> gcc -v -Wp,-MD,kernel/.exit.o.d -D__KERNEL__ -Iinclude -Wall \
> -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer \
> -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 \
> -march=i486 -Iarch/i386/mach-generic -nostdinc -iwithprefix include \
> -DKBUILD_BASENAME=exit -c -o zz25.o kernel/exit.c
>
> Whereas for 2.4, command is different:
>
> gcc -v -D__KERNEL__ -Iinclude -Iarch/i386/mach-generic \
> -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing \
> -fno-common -pipe -mpreferred-stack-boundary=2 -march=i386 -nostdinc \
> -iwithprefix include -DKBUILD_BASENAME=exit -c -o zz24.o kernel/exit.c
>
> (commands slightly adapted to actually execute in 2.5 tree and
> don't destroy exit.o)
>
> As you can see, the difference is in -march=.
> 2.5 compiles for 486. I have nothing against 486, but
> gcc 3.x got nasty habit of aligning functions and sometimes
> *even loops* to 16 bytes. Result:
the 486 days setting my flags explicitly for anything which might be the
target of a branch. However, my recollection is that things were put on a
quadbyte, not position 16.
You can set the placement of loops, functions, and something else to be
mod any power of two, I believe.
I still run routers on one 486 and a boatload of Cyrix and similar clones.
-- bill davidsen <davidsen@tmr.com> CTO, TMR Associates, Inc Doing interesting things with little computers since 1979.- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/