------- Comment #44 from jakub at gcc dot gnu dot org 2010-03-16 16:58 ------- -Os optimizes for size current translation unit, it doesn't (nor easily can) guess whether or not you are linking libm.a or libm.so and whether in the former case using a call would be the only place that calls some routine (when linking against shared library of course this doesn't make any sense, you always get it).
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40106