Antti and Martin helped me debug this problem on IRC. And here is the result.
It turns out that QEMU on native is using C++ to build. C++ will just throw in -lm for no good reason during linking phase. Rump is using gcc so explicitly adding "-lm" is required to build QEMU. In any case, this seems to be a bug in QEMU's own build system and should be fixed there. This patch will be dropped. Thanks for Antti and Martin's help. Wei.
