> If it's any comfort to you, my gcc (2.7.2.3) doesn't know what to make
> of -mpreferred-stack-boundary either.
The kernel should really take care of this however. No changes should
be necessary on the users end. It checks if your compiler will accept
that as a flag before it uses it.
> I am not sure what mandrake does for c compilers. I think the new
> Slackware sets gcc as the default for c code, and egcs for c++. You
> might check if you have egcs, and if you do see if substituting it for
> gcc in the line
>
Ok. I've got two ways you can fix it.
Ok I've attached a short perl script. please to be running it.
If it prints out 256 to your screen, do method one.
If it prints out 0 there is a bug in your compiler. Do method two.
(method two should work either way)
One. ( I don't know if this will work )
cd /usr/src/linux
cp .config /tmp
make distclean
mv /tmp/.config ./
make oldconfig
make dep clean bzImage
Two. ( this should )
go into
/usr/src/linux/arch/i386/
find a line in the Makefile that reads
:CFLAGS += $(shell if $(CC) -mpreferred-stack-boundary=2 -S -o /dev/null -xc /dev/null
:>/dev/null 2>&1; then echo "-mpreferred-stack-boundary=2"; fi)
This line of nonsense checks if your compiler accepts that option, by return
code. If the program returns 0 the kernel assumes it's okay to use that. Otherwise it
doesn't. Why does the kernel think it's ok when it isn't? either there
are remnents left in the source tree from a compiler that thought it was ok
or your compiler is returning weird values. I'd guess.
and comment it out( put a # in front )
go back to /usr/src/linux and to a make bzImage
hope this helps
greg
--
this is not here
#!/usr/bin/perl
$myvar = system("/usr/bin/gcc -mpreferred-stack-boundary=2 -S -o /dev/null -xc
/dev/null >/dev/null 2>&1");
print $myvar