> 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

Reply via email to