The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как скомпилировать ПО с сиcтемой команд i386?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как скомпилировать ПО с сиcтемой команд i386?" 
Сообщение от stranger Искать по авторуВ закладки(??) on 03-Авг-05, 15:18  (MSK)
OS linux RH7.3 на процессоре i686. Хочу скомпилировать busybox с системой
команд i386.
1. Поставил исходники glibc
2. Скофигурировал, чтобы скомпилировать библиотеки под i386 `--host=i386-linux'
3. Построил и установил библиотеки в /usr/local/lib
4. Сконфигурировал busybox с параметрами "-mcpu=i386 -L/usr/local/lib ..."
5. Построил busybox.
6. Смотрю зависимости:ldd busybox        

  libcrypt.so.1 => /lib/libcrypt.so.1 (0x40017000)      
  libc.so.6 => /lib/i686/libc.so.6 (0x42000000)        
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

7. Не вижу ссылок на библиотеки /usr/local/lib

Что не так?

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как скомпилировать ПО с сиcтемой команд i386?" 
Сообщение от Simps Искать по авторуВ закладки(ok) on 03-Авг-05, 15:58  (MSK)
>OS linux RH7.3 на процессоре i686. Хочу скомпилировать busybox с системой
>команд i386.
>1. Поставил исходники glibc
>2. Скофигурировал, чтобы скомпилировать библиотеки под i386 `--host=i386-linux'
>3. Построил и установил библиотеки в /usr/local/lib
>4. Сконфигурировал busybox с параметрами "-mcpu=i386 -L/usr/local/lib ..."
>5. Построил busybox.
>6. Смотрю зависимости:ldd busybox
>
>  libcrypt.so.1 => /lib/libcrypt.so.1 (0x40017000)      
>  libc.so.6 => /lib/i686/libc.so.6 (0x42000000)        
>  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
>
>7. Не вижу ссылок на библиотеки /usr/local/lib
>
>Что не так?

А они ему нужны?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как скомпилировать ПО с сиcтемой команд i386?" 
Сообщение от stranger Искать по авторуВ закладки(??) on 04-Авг-05, 07:26  (MSK)
>
>А они ему нужны?

Конечно нужны - все библиотеки лежат в /usr/local/lib.
Например libc.so.6 должна ссылаться на => /usr/local/lib/libc.so.6, в котором лежит версия для i386, а никак не на => /lib/i686/libc.so.6 где лежит версия для i686.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как скомпилировать ПО с сиcтемой команд i386?" 
Сообщение от MaximKuznetsov Искать по авторуВ закладки on 15-Авг-05, 21:39  (MSK)
>>
>>А они ему нужны?
>
>Конечно нужны - все библиотеки лежат в /usr/local/lib.
>Например libc.so.6 должна ссылаться на => /usr/local/lib/libc.so.6, в котором лежит версия для i386, а никак не на => /lib/i686/libc.so.6 где лежит версия для i686.

а ты собери под ним hello_word.c и посмотри получившиеся зависимости

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Как скомпилировать ПО с сиcтемой команд i386?" 
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 26-Авг-05, 18:50  (MSK)
>>4. Сконфигурировал busybox с параметрами "-mcpu=i386 -L/usr/local/lib

Это всего лишь говорит о том, что на момент линковки таблички экпортируются из либ, лежащих в /usr/local/lib. Но конкретно этот путь в бинарь не зашивается. Туда зашиваются только имена либ. Когда бинарь стартует, у него запускается обвязка (для линуха это ld-linux) которая дергает DL-Manager (в линухе это базы ldconfig'а и энвайронмент $LD_LIBRARY_PATH), а тот сообщает ей пути, где эти либы взять. Соотвеццно, надо либо обзывать нужные либы уникальными именами, либо на момент запуска вычистить из ld.so.conf и $LD_LIBRARY_PATH все, кроме твоего /usr/local/lib, либо разбираться с приоритетами отдачи путей к либам DL-Manager'ом.
А вообще, если нет желания сломать голову, и хочется ограничить себя от гемора, то проще собрать все в статике, хотя тут тоже есть свои подводные камни.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Как скомпилировать ПО с сиcтемой команд i386?" 
Сообщение от regunkov Искать по авторуВ закладки(ok) on 14-Сен-05, 15:01  (MSK)
Я занимался подобным.
Сделал загрузочный диск с Linux для i386.

Пользовался следующими доками:
http://www.bulah.com/embeddedgentoo.html
http://gentoo-wiki.com/HOWTO_build_a_LiveCD_from_scratch
http://gentoo-wiki.com/HOWTO_Gentoo_LiveCD_and_LiveUSB

Посмотри мож поможет.

PS
regunkov@roman ~ $ uname -a
Linux roman 2.6.12-gentoo-r6 #3 Fri Jul 22 16:53:11 MSD 2005 i686 Intel(R) Pentium(R) 4 CPU 2.00GHz GenuineIntel GNU/Linux

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как скомпилировать ПО с сиcтемой команд i386?" 
Сообщение от const Искать по авторуВ закладки(??) on 15-Авг-05, 16:24  (MSK)
dietlibc, ulibc ;-)
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Как скомпилировать ПО с сиcтемой команд i386?" 
Сообщение от Аноним emailИскать по авторуВ закладки on 17-Авг-05, 07:23  (MSK)
компилируй busybox в режиме static
очень удивишься когда размер будет намного меньше смумме всех либ
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру