Re -mcpu and -march, I would worry about -march=..., which actually changes the instruction set of the target, but -mcpu=... only changes the sheduling and such and so should be fine. I personally would want to tune things for the Athlon/Opteron.