LINUX.ORG.RU
ФорумAdmin

Вопросы насчёт компиляции ядра


0

0

Возник такой вопрос...
При компиляции ядра всегда делаю так
# cd /usr/src
# tar xjf /path/to/kernel/linux-x.y.z.tar.bz2
# ln -sf linux-x.y.z linux
# cd /usr/include
# ls -la|grep linux
linux -> /usr/src/linux/include/linux
# ls -la|grep asm
asm -> /usr/src/linux/include/asm-i386
# ls -la|grep asm-generic
asm-generic -> /usr/src/linux/include/asm-generic
Ну и так далее...
Недавно наткнулся на пост(где - уже не помню), что компилить
новое ядро надо с теми же хедерами, с которыми собраны glibc
в дистрибутиве... Теперь в сомнениях.
Уважаемые гуру, развейте сомнения? :-)

Deleted

>компилить новое ядро надо с теми же хедерами, с которыми собраны glibc в дистрибутиве...

херня полная, вот есть системка на amd64, все собрано с nptl, ядро 2.6.0-test11, хедеры от 2.4.22, все бегает только в путь.

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

В принципе если все собралось без ошибок, то не имеет значения.

anonymous
()

Согласно Линусу Торвальдсу, компилить любое ядро нужно с хидерами того
ядра, с которыми были собраны glibc.

Работать с другими хидерами будет - не вопрос, тем не менее, если интересны
причины такого действа, скачай книгу по lfs - там в главе о компиляции
glibc об этом сказано.

jackill ★★★★★
()

Да, чуть не забыл - ничего копировать и т.д. никуда не нужно, т.е.
то, что в ядре, оно и скомпилится с тем, что в ядре, а хидеры glibc будут
в системе (asm) и используются при компиляции других программ в т.ч.

Там где нужны конкретно хидеры ядра (прямо с заменой) об этом говорится
отдельно (что-то подобное я недавно видел).

Что касается "новости" данной особенности - это еще с первого ядра повелось
и 2.4 или 2.2 ничем в этом плане не отличается от 2.6

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

идея в том что ядро, glibc и все пакеты должны компилироваться с одними и темиже заговоками. теоритически если делаются симлинки при компиляции нового ядра, затем надо пересобирать всё потому что новое ядро имет право не работать со старой glibc или наодорот старое glibc имеет право не арботать с новым ядром. призаться сборка glibc вещь очень тоскливая. Интересно, тогда получается сколько новые заголовки в новом ядре не пиши толку от них 0. Они нужны только для построения системы целиком с 0.

собсвенно вот тот знаменитый пост

I would suggest that people who compile new kernels should:

- not have a single symbolic link in sight (except the one that the kernel build itself sets up, namely the "linux/include/asm" symlink that is only used for the internal kernel compile itself)

And yes, this is what I do. My /usr/src/linux still has the old 2.2.13 header files, even though I haven't run a 2.2.13 kernel in a _loong_ time. But those headers were what glibc was compiled against, so those headers are what matches the library object files.

And this is actually what has been the suggested environment for at least the last five years. I don't know why the symlink business keeps on living on, like a bad zombie. Pretty much every distribution still has that broken symlink, and people still remember that the linux sources should go into "/usr/src/linux" even though that hasn't been true in a _loong_ time.

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