Since it worked out OK on Mandrake 9.1 (no issues in two days so far), I thought I'd post this in case anyone was interested. I rebuilt the Mandrake kernel-multimedia-2.4.21.0.16mdk-1-1mdk.src.rpm for athlon-xp, using these flags (I edited the rpmrc file), with no errors:
optflags: athlon -O3 -march=athlon-xp -mcpu=athlon-xp -mmmx -msse -m3dnow -funroll-loops -fomit-frame-pointer -pipe -ffast-math -fforce-addr -fno-strength-reduce
According to man gcc, the -mcpu=athlon-xp flag is not redundant, and without specifially using it, the compiler will not generate code which will not run on the i386, even with the -march=athlon-xp flag included. Apparently, this means that with only the -march=athlon-xp flag specified, gcc omits some features specific to the athlon-xp cpu. I assume this would hold true for any specific cpu.
The command (on one line, from the directory the srpm is in) is:
rpm --rebuild --target athlon kernel-multimedia-2.4.21.0.16mdk-1-1mdk.src.rpm
You get the kernel, kernel-source, and the smp kernel (if you need it).
I haven't examined the spec file yet, but I understand this kernel has the preemptive and low-latency patches, and the generated .config file in the source directory in /usr/src confirms this (CONFIG_PREEMPT=y). It can be found at:
http://distro.ibiblio.org/pub/Linux/distri.../contrib/SRPMS/
Robert Crawford