Проблема заключается в том, что аргументы переданы компилятору.
В Oneiric связанные имена библиотек должны быть вызваны после имени исходного файла:
gcc test.c -lm
Это изменение и причины для этого описаны более подробно здесь.
Проблема не возникает для функций постоянных значений, потому что gcc имеет встроенные версии из них. Таким образом, компиляция с -fno-builtin дает ту же ошибку, что и с переменной в аргументе.
Спасибо за здесь за эту информацию.