Модераторы: ZeeLax, powerfox
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при сборке Xorg 
V
    Опции темы
JekaZZ
Дата 27.2.2009, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 6.10.2005

Репутация: нет
Всего: 3



     На Slackware 12.1 устанавливаю иксы из исходников. Я не брал пакеты из релизов, а просто скачал самые новые пакеты, таким образом, у меня пакеты из последнего релиза Xorg 7.4 и вышедшие после этого релиза обновленные пакеты.

     Все конфигурирую с одной опцией --prefix=/usr. 
Дошел до сборки pixman-0.14.0 и тут ошибка - 
Код

/usr/lib/libxcb-xlib.so: undefined reference to `_xcb_lock_io'
/usr/lib/libxcb-xlib.so: undefined reference to `_xcb_unlock_io'


    Раньше ставил иксы из исходников, но брал все пакеты из Xorg 7.4. И все собиралось отлично.
Но иксы имеют большие проблемы с XCB, там постоянно возникают deadlock-и, у меня в том числе. От них нужно срочно избавиться, вот решил попробовать самые новые пакеты. Со времен Xorg 7.4 уже вышли обновленные Xlib, Xcb. У меня собрались без ошибок. А вот на pixman-е заткнулось, к стати, он тоже обновился. 
    Еще я пробовал поставить новые Xlib, Xcb, Xorg-server поверх уже установленного Xorg 7.4. Они собрались и стали нормально, попросив новые версии некоторых зависимостей. Но потом я попробовал пересобрать свою программку, и при сборке вылезла та же ошибка. И что я совсем не понял - так это то, почему я не мог от нее никак избавиться. Для того, чтобы все вернуть назад, я удалил полностью все файлы иксов - они у меня ставятся одним пакетом, на всякий случай в каждых исходниках новых пакетов выполнил make uninstall, заново установил Xorg 7.4 (своим одним  пакетом), но при сборке моей программы 
 ошибка осталась!!! 
   Переустановил систему. Теперь вот решил поставить все новые пакеты, а не поверх Xorg 7.4. И здесь эта ошибка!


Это сообщение отредактировал(а) JekaZZ - 27.2.2009, 14:49
PM MAIL   Вверх
JekaZZ
Дата 27.2.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 6.10.2005

Репутация: нет
Всего: 3



В Xcb из Xorg 7.4 есть библиотека libxcb.so.1.0.0,  посмотрел в неё Midnight Commander-ом - там есть функции _xcb_lock_io, _xcb_unlock_io. 
А вот новый Xcb содержит библиотеку libxcb.so.1.1.0, и в ней этих функций нет. К тому же в файле NEWS из исходников нового Xcb написано в пункте Enhancements: Inline _xcb_lock_io, _xcb_unlock_io and _xcb_wait_io. Вот поэтому их нету. 
Что делать? pixman без них не собирается, а без него не собирается xorg-server.

Это сообщение отредактировал(а) JekaZZ - 27.2.2009, 16:24
PM MAIL   Вверх
JekaZZ
Дата 27.2.2009, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 6.10.2005

Репутация: нет
Всего: 3



/usr/lib/libxcb-xlib.so оказался файлом из xcb в составе Xorg 7.4. Я его удалил. 
Естесственно, теперь при сборке pixman вылазит ошибка о его отсутствии.

И Вот что я нашел в описании нового XCB:
The compatibility functions in xcbxlib.h, provided solely for use by Xlib/XCB, now exist in a separate library libxcb-xlib. We don't want to have to change the libxcb soname if we later change or remove the Xlib compatibility functions, and nothing except Xlib/XCB should ever use them. (Applications which use Xlib/XCB  do not need this library either; Xlib/XCB only uses it internally.)

Я не понял, они имели в виду, что некоторые функции вынесли в отдельную библиотеку libxcb-xlib?
Что-то я не нахожу такой. libxcb-xlib.so при сборке нового XCB не формируется, на http://xcb.freedesktop.org/dist/ тоже такой библиотеки нет.

PM MAIL   Вверх
JekaZZ
Дата 27.2.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 6.10.2005

Репутация: нет
Всего: 3



Поставил pixman не последний - вместо pixman-0.14.0 поставил pixman-0.13.2, он собрался, xorg-server и драйверы собрались. Но осталась проблема с моей программой. Теперь она при сборке требует libxcb-xlib.la.
Кстати, подскажите, откуда компилятор берет, что программе нужен этот файл? Нигде в исходниках программы он не упоминается.
PM MAIL   Вверх
bilbobagginz
Дата 28.2.2009, 01:07 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 28
Всего: 317



не хочу встревать в эту дискуссию. тихо стою в сторонке....



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
nickless
Дата 28.2.2009, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 18
Всего: 181



JekaZZ, а ты не пробовал собрать иксы (в часности libX11 и mesa) с --disable-xcb? Раз уж тебя проблемы с XCB... Начиная с libxcb-1.1 eсть еще кстати переменная окружения LIBXCB_ALLOW_SLOPPY_LOCK=1 на случай некоторых багов.

Цитата(JekaZZ @  27.2.2009,  17:34 Найти цитируемый пост)
подскажите, откуда компилятор берет, что программе нужен этот файл? Нигде в исходниках программы он не упоминается. 

Сложно ответить на этот вопрос не зная об этой программе ничего кроме самого факта что она есть и не собирается. smile 
Методом чтения файлов по фотографии могу предположить, что зависимость от libxcb прописана в файле /usr/lib/pkgconfig/x11.pc smile 


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
JekaZZ
Дата 2.3.2009, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 6.10.2005

Репутация: нет
Всего: 3



Цитата

...а ты не пробовал собрать иксы (в часности libX11 и mesa) с --disable-xcb?

Помучавшись с вышеизложенным, так и сделал. Поставил тот же Xorg-7.4, но libX11 собрал без xcb. Это помогло, deadlock-и больше не возникают. Теперь у меня отпадает необходимость ставить что-то новее. 
Почему сразу так не сделал? Делал, но само по себе это не помогло. Поэтому забросил эту идею. Оказалось, нужно было еще в программе сделать изменения. Там цикл чтения сообщений XEvent был  не в главном потоке. Не знаю, от этого или нет, но с libX11 без xcb программа падала, а с xcb программа висла. 
И только совместные перенесение чтения сообщений в главный поток, и сборка libX11 без xcb решили проблему.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
pythonwin

В этом форуме предпочтительны вопросы на следующие темы:

  • Конкретные вопросы о конкретном ПО. В таких вопросах желательно привести точные данные о программе: версия программы, версия ОС, версия ядра, и проблему в форме: сделал Х, хотел получить Y, а получил Z.
  • Неконкретные вопросы о выборе ПО
  • Обзоры - как дополнение в ветку Обзоры


  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программное обеспечение под *NIX системы | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.