При компіляції деяких програм(mplayer, cdrtools теж здається, наскільки я пам'ятаю, та ще якихось) виникають помилки. Чому, я розібрався. Тому що в коді програми присутні такі строки:
// 2.5.xx+ calls this user_desc:
#include <linux/version.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,47)
#define modify_ldt_ldt_s user_desc
#endif
Ця проблема з'явилася в мене колись давно, і тоді давно я її вирішив, але, питання XSiD'a стосовно cdrtools нагадало мені її, і захотілося зрозуміти..
В мене ядро з гілки 2.6, тому і виникають проблеми - чомусь перевірка версії ядра не дає правильних результатів, і умова не виконується. Я пробував міняти ці цифри на 2,6,x. Результату не було. Тоді я в розпачі вирішив спробувати 2,7,47.. І запрацювало так як треба.
Ось вміст файлу linux/version.h:
#define UTS_RELEASE "2.6.8.1"
#define LINUX_VERSION_CODE 132616
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) <<

+ (c))
Проблема врпинципі вирішена, але, хочеться розібратися в чому таки справа, що то за конструкція така в version.h, і як отримують отой магічний LINUX_VERSION_CODE
P.S. Яке слово вірніше використовувати, джерельні коди, чи вихідні? Чи немає різниці?