Отправляет email-рассылки с помощью сервиса Sendsay

Проблемы при сборке glibc (a'la LFS)

Собираю чистую систему с нуля (почти LFS, но не совсем). Смысл - перевести
glibc под ядро 2.6.0. При попытке компиляции на установленной системе
(слака-9.1), и помещении хедеров от нового ядра в /usr/include,
glibc(2.3.2) ругается на несоответствие типов родной библиотеки и
заголовочных файлов.

Пришлось собрать основные пакеты для сборки (binutils, coreutils,
util-linux, gcc-core, etc.) по LFS. Помучался, собрал статически, скинул в
отдельный каталог, сделал дерево каталогов, настроил файл profile в новом
каталоге ( системное окружение, оптимизация, кое-какие настройки), сказал
chroot данный_каталог, и начал компилировать glibc.

Первая проблема с которой я столкнулся и которая не указана в LFS -
библиотека потребовала свои собственные заголовочные файлы в каталоге
chroot:/usr/include. Решил простым копированием этих заголовков из каталога
библиотеки.

Наконец с библиотеками разобрался, начал компиляцию... Примерно под конец
компиляции, сборка закончилась сообщением (извняюсь за немного обрезаное
начало - столько поместилось на экран консоли и выделилось мышкой. Но могу
заверить, до этого - все нормально. Пробовал собирать несколько раз, изменяя
параметры компилятора, в т.ч. и убирая оптимизацию):

threads -o /usr/src/glibc-build/linuxthreads/libpthread.so -T
/usr/src/glibc-build/linuxthreads/libpthread.so.lds
/usr/src/glibc-build/csu/abi-note.o -Wl,--whole-archive
/usr/src/glibc-build/linuxthreads/libpthread_pic.a -Wl,--no-whole-archive
/usr/src/glibc-build/elf/interp.os
/usr/src/glibc-build/linuxthreads/libc.so
/usr/src/glibc-build/libc_nonshared.a /usr/src/glibc-build/elf/ld.so
/usr/src/glibc-build/linuxthreads/libpthread_pic.a(ptclock_gettime.os)(.text+0x5c):
In function __udivdi3'
/usr/src/glibc-build/linuxthreads/libpthread_pic.a(ptclock_gettime.os)(.text+0x73):
In function __umoddi3'
/usr/src/glibc-build/linuxthreads/libpthread_pic.a(ptclock_gettime.os)(.text+0xf8):
In function __udivdi3'
/usr/src/glibc-build/linuxthreads/libpthread_pic.a(ptw-write.os)(.text+0x5f):
In function __i686.get_pc_thunk.bx'
/usr/src/glibc-build/linuxthreads/libpthread_pic.a(ptw-read.os)(.text+0x5f):
In function __i686.get_pc_thunk.bx'
/usr/src/glibc-build/linuxthreads/libpthread_pic.a(ptw-close.os)(.text+0x54):
In function __i686.get_pc_thunk.bx'
/usr/src/glibc-build/linuxthreads/libpthread_pic.a(ptw-accept.os)(.text+0x5b):
In function __i686.get_pc_thunk.bx'
/usr/src/glibc-build/linuxthreads/libpthread_pic.a(ptw-connect.os)(.text+0x5b):
In function __i686.get_pc_thunk.bx'
/usr/src/glibc-build/linuxthreads/libpthread_pic.a(ptw-recv.os)(.text+0x5b):__libc_recv:
more undefined references to /usr/src/glibc-2.3.2/linuxthreads'
make[1]: *** [linuxthreads/others] Error 2
make[1]: Leaving directory

Самое интересное, что библиотека libc.so в каталоге linuxthreads создается.

Может кто сталкивался с такой проблемой?

Спасибо.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   d2r Fri, 16 Jan 2004 09:14:06 +0200 (#56096)

 

Ответы:

Занимаюсь тем же самым, только донор - ASP 9.0
По какой версии (4 или 5) LFS BOOK делали то что описали.
Так у меня с 4 были помнится большие проблемы с компиляцией glibc.

Старый.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 16 Jan 2004 10:42:32 +0300 (#56122)

 

Начинал с четвертой. Помучался с компиляцией binutils, не хотели собираться
статически. Положил в chroot:/lib glibc из слакваря (то же 2.3.2 но для 486
и с хедерами ветки 2.4.) и скопировал as (требуется при сборке) из
слакваря. Стал собирать glibc - получил указанную мной ошибку.
После этого скачал последнюю LFSbook. Разобрался с binutils. Удалил libc.so
из chroot:/lib. Начал собирать библиотеку снова, после make clean и запуска
скрипта configure с ключами, описанными в свежей LFSbook. И опять та-же
ошибка.

Возможно, придется снова пересобирать все по новой LFS, хотя смысла особого
я не вижу, так как пакеты, требуемые для сборки библиотеки уже собраны
статически (два дня собирал). Главное ведь, собрать системную библиотеку. А
GCC и все остальное работает нормально. Или я ошибаюсь?

Спасибо.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   d2r Fri, 16 Jan 2004 11:29:53 +0200 (#56223)

 

Привет

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

Если скачали LFSBOOK 5, то лучше все сделать как там написано с начала до момента
перехода в chroot заново. Заодно там нужно точно отследить какие именно хедеры
вы используете для сборки. Если планируете использовать selinux, то желательно
еще посмотреть патчи ядерные с www.nsa.gov

нормально. Или я ошибаюсь?

Думаю не ошибаетесь, а чуточку заблуждаетесь. Кроме наличия glibc gcc и кое-какой
программной обвязки должно выполняться такое правило -
когда вы оказываетесь в chroot среде ваши хедеры должны быть от того ядра с которым
вы собирали все либы и проги в chroot среде, хедеры gcc нефисеные и правильно
выставленные параметры для ld

В 5 немного иная идеология сборки чем в 4. Поэтому лучше следовать ей.
В 4 все собирается статически, а затем из chroot этими прогами собираются glibc
gcc и др программы динамически. В 5 применен другой подход - собирается статически
то что нужно для компиляции, затем меняются настройки ld, и после этого компилируется
chroot среда по новой, но уже динамически целиком с использованием хедеров из
будущей chroot среды, никаких файлов из старой системы никогда не берется. Этот
подход требует более длительной подготовки (glibc gcc binutils - компилируются
перед переходом не 1 раз а два), но время стоит того - лучше еще день потерять,
затем быстро долететь.

Когда я доведу сам до конца LFS и BLFS попробую выложить свою историю сборки.

Удачи, Старый.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 16 Jan 2004 14:23:34 +0300 (#56348)

 

Доброе время суток d2r,

Friday, January 16, 2004, 11:29:53 AM, you wrote:

А

Собирал LFS4, а потом и 5-ю версию. В 4-й была проблема с glibc,
которая повторилась в 5-й версии.
Но когда пересоздал раздел с LFS и пересобрал все с начала -
ЗАРАБОТАЛО.
Правда сейчас мучаюсь с "Installing GCC (step 2)".

P.S. Правда исходники я брал с ALT Linux Master 2.2. Хотел бы достать
оригинальный диск с LFS и BLFS...

-- ORIGIN: Жить тебе осталось и много, и мало.
С уважением,
Thief AKA C@T AKA Constantine A. Tkachenko mailto:cat_0***@u*****.net

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 16 Jan 2004 14:10:24 +0200 (#56476)

 

диск с LFS и BLFS...
А они диски делают? Обычно идешь на http://freshmeat.net/ и качаешь через него
все что нужно.

Удачи, Старый.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 19 Jan 2004 12:59:50 +0300 (#58236)

 

него

Хорошо тому, у кого канал широкий...
А так приходится выкручиватся.
Если LFS весит ~120MB, да плюс еще BLFS - то получается кругленька
болванка... :(
Так что приходтся использовать что имею.
Вот документацию внимательно читаю и помаленько двигаюсь вперед.
(хотя, бывает приходится откатывать на самое начало)

Удачи!

-- ORIGIN: Кто pано встает - пеpвый куpс узнает.
С уважением,
Thief AKA C@T AKA Constantine A. Tkachenko mailto:cat_0***@u*****.net

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 19 Jan 2004 17:31:14 +0200 (#522517)

 

Привiiт Всiiм ! ;-)

пт 16 сiiч 2004 11:29, d2r Ви написали:

Инфа очень заинтересовала, я юзаю Slackware 9.1, AMD k6-2 350MHz, и задач
таких чтобы спрыгивать на 2.6 пока нету, но какие-то опыты по оптимизации 2.4

проводил. Так вот когда я компилил glibc-2.4 то компилятор выдал сообщение
об ошибке (дословно уже его не передам), что нужно с этими же параметрами
сначала собрать gcс-lib. Так вот я пересобрал под свои нужды gcс и тогда
пошла компиляция glibc гладко. Правда у меня было чёткое сообщение об ошибке
Просто gcс и glibc должны быть из одной упряжки и сначала нужно собрать
инструмент а потом уже библиотеки для этого инструмента.

Прошу прощения, если это не о том.

з повагою
беg"iiнер

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 16 Jan 2004 23:20:38 +0200 (#56718)

 

On Fri, 16 Jan 2004, Михаил Татарко wrote:

а у меня никогда и никаких -- после внимательного прочтения LFS Book тогда
еще 4 версии.

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

на самом деле, как я уже писал -- все надо делать в точности по LFS Book,
хотя бы до perl'а (включая его, потому что и с ним затыки случаются).

а оборудование это дело очень важное. собираем мы значит с приятелем LFS
одними и теми же скриптами под slackware 8.1 и все собирается, только у
меня в собранной мной xfree русский вообще не работает, а в его сборке -- и
у него и у меня. вот так. казалось бы. у меня AMD Duron 750, у него Intel
Celeron Tualatin 1.3. интересно, правда? сырцы, естественно одинаковые.

ps. я еще BLFS собрал. вот там с xfree мороки было. капризней glibc в
неск. раз, особенно если потюнить его очень хочется.

email: mkb@n*****.ru
homepage: http://mkb.nightmail.ru/.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 16 Jan 2004 13:12:48 +0300 (MSK) (#56407)

 

еще 4 версии.
Четверку я тоже собирал когда-то, но вот когда решил повторить, только с более
новыми пакетами, напоролся на затыки и полюбил пятерку, потому как с ней все
вышло сразу на ура.

раз, особенно если потюнить его очень хочется.
Вот будет у кого проконсультироваться, если что... Под какую локаль собирал?
Какой стиль скриптов (хотя догадываюсь что BSD-style, коли на Слаке работаешь)?

Удачи, Старый.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 19 Jan 2004 12:59:45 +0300 (#58235)

 

On Mon, 19 Jan 2004, Михаил Татарко wrote:

локаль ru_RU.KOI8-R.

инит скрипты сначала попробовал ихние bsd, затем понял, что не
нравиться в них и написал свои.

http://mkb.nightmail.ru/bsdinitscripts/

это "жесткий" порт с openbsd + очень много своего. конфигурится через
/etc/rc.conf. настройка интерфейсов -- через /etc/interface.eth0 и
т.д. если соберетесь их юзать загляните в Makefile. он простой. и
увидите, что единственная цель это `install'. он делается с помощью
`install -b', т.е. с полным бэкапом. ничего не потеряете, если что.

насчет предложений по их развитию:

1) если очень надо, можно продолжить разработку...
2) хотите отослать патч -- отсылайте. померджу.
3) есть свежие идеи -- в мыло.

я кстати пытаюсь сейчас наваять новые инит. скрипты. я это делаю для
slackware. они будут в себе сочетать /etc/init.d с модульными
скриптами, некоторые фичи из gentoo (профили, env.d) и вероятно отказ
от /etc/rcX.d с симлинками. хотя сам механизм еще не утвердился.
вероятно это будет некий бэкпорт гентушных, правда без их rc.conf,
поскольку он в эту модель не влезает, но зато с /etc/sysconfig
(или /etc/conf.d, как в генту). принимаются любые пожелания от
заинтересовавшихся, если таковые имеются.

если хотите законтребутить какой-нить код или маны -- мыльте.

всего хорошего.

email: mkb@n*****.ru
homepage: http://mkb.nightmail.ru/.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 19 Jan 2004 17:12:14 +0300 (MSK) (#58519)