LINUX.ORG.RU

заголовки ядра и glibc


0

0

А почему всё таки заголовки в /usr/include/{linux,asm} должны соответствовать тем с которыми компилировалась glibc? Как компилируемые программы могут пострадать от этого? Например использую я printf() - функция реализована в glibc, gcc использует файл /usr/include/stdio.h, glibc выполняет эту функцию, используя системные вызовы. - вроде бы всё акейна. Теперь беру какую либо функцию из /usr/include/linux - теперь моя программа откомпилится с системным вызовом, который выполнит ядро в обход glibc. При чём тут glibc...

Что-то никак в толк не возму.

Ответ на: комментарий от xnix

системнй вызов - это функция ядра, вызывается путём прерывания 0x80 парамытры передаются через регистры eax, ebx... eax - содержит номер системного вызова. После перехода в обработчик прерывания ядро переводит процесс в режим ядра.

Вроде бы так.

letopisec
() автор топика

> А почему всё таки заголовки в /usr/include/{linux,asm} должны соответствовать тем с которыми компилировалась glibc?
Вообще первый раз это услышал!
Я спокойно при обновлении ядра переписываю заголовки!

UVV ★★★★★
()
Ответ на: комментарий от UVV

Вот что пишет Патрик (в slack 10.1)

As a general rule, installing kernel headers that are newer than the kernel glibc was compiled with *may* cause problems, so unless you need these for a particular reason it's best to stick with the 2.4.29 kernel-headers package for now.

RatMann ★★
()
Ответ на: комментарий от RatMann

>Вот что пишет Патрик (в slack 10.1)...

Ага, и в linux from scratch тоже. А вот почему?

Пробовал переименовать /usr/include/linux и откомпилить ядро - не получилось. Т.е при компиляции ядра некоторые заголовки берутся оттуда. По всей видимости в этом и состоит проблема: главное чтобы определённые заголовки при компиляции ядра и glibc были одними и теми же, тогда не будет проблем в интерфейсе между glibc -> kernel. А как следствие системные проги использующие сервисы ядра тоже должны использовать эти же заголовки.

товарищ xnix - так нет? :)

letopisec
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.