Ошибки компиляции


Ошибка:
Fixing /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches

Объяснение:
В современных компиляторах errno - не целое число, а некий объект в контексте нити (TLS-Thread local storage), который может отличаться по размеру от целого. Соответственно, объявление в коде программы
extern int errno;
генерирует неверный код.

Способ исправления:
Добавить в файл строчку
#include <errno.h>
или в опции компилятора
-include /usr/include/errno.h