Я б здогадався, що це спосіб зробити додатки, які зовсім не використовують його, трохи ефективніше. Ось моя думка з цього приводу.
ОС x86 (і я думаю, що інші) повинні зберігати стан FPU на контекстному комутаторі. Однак більшість ОС намагаються зберегти / відновити цей стан після того, як програма намагається використовувати FPU вперше.
На додаток до цього, в математичній бібліотеці є певний базовий код, який встановить FPU у здоровий базовий стан при завантаженні бібліотеки.
Отже, якщо ви взагалі не зв’язуєте жоден математичний код, нічого з цього не відбудеться, тому ОС не повинна взагалі зберігати / відновлювати будь-який стан FPU, роблячи контекстні перемикання дещо ефективнішими.
Тільки здогадка, хоча.
EDIT: у відповідь на деякі коментарі, те саме базове передумови досі застосовується до випадків, що не належать до FPU (припущення полягає в тому, що програми, які не використовують libm, працюють трохи краще).
Наприклад, якщо є Soft-FPU, який був подібний в перші дні C. Тоді, якщо розділити libm окремо, це може перешкодити безлічі великого (і повільного, якщо воно використовується) коду.
Крім того, якщо доступно лише статичне посилання, то застосовується аналогічний аргумент, який би зберігав виконувані розміри та час компіляції.