configure tries to determine if -lm is needed by compiling int main() { (void)sin(0.0); ; return 0; } and see if linking fails. But gcc3.3 optimizes that to just "return 0;"