[sisyphus] Cборка X11R70 - Не дайте пропасть неучу!!
gosha
=?iso-8859-1?q?embedded_=CE=C1_nm=2Eru?=
Чт Авг 31 10:18:09 MSD 2006
При портировании на MIPS архитектуру, пересобрал xserver X11R70.
http://webcvs.freedesktop.org/xorg/xserver/xorg/
Остальные бинарники и библиотеки- из комплекта Debian под MIPS архитектуру http://www.debian.org/ports/mips/ .
При запуске startx <cr> собранного Xorg
выдается сообщение об ошибке:
X: error while loading shared libraries: /usr/lib/xorg/modules/fonts/libbitmap.so: undefined symbol BitmapRegisterFontFileFunctions
Kак я понял, не подгружается библиотека libXfont.so.1 из комплекта Debian под MIPS http://webcvs.freedesktop.org/xorg/xc/lib/font/bitmap/
Т.е. данная функция находится в библиотеке libXfont.so.1 исходник lib/font/bitmap/bitmapfunc.c и индицируется утилитой mips-linux-nm.
http://webcvs.freedesktop.org/xorg/xc/lib/font/bitmap/bitmapfunc.c?view=markup
Библиотека находится в каталоге /usr/lib
Переменная LIBRARY_PATH= LD_LIBRARY_PATH= /lib:/usr/lib
Сервер собирался на Target машине так:
>export PKG_CONFIG_PATH=/usr/lib/pkgconfig:${PKG_CONFIG_PATH}
>export LD_LIBRARY_PATH=/usr/lib:/lib:/usr/lib
>export LD_RUN_PATH=/usr/lib:${LD_RUN_PATH}
>export ACLOCAL="aclocal -I /usr/share/aclocal"
>CFLAGS="-mips32 -I/usr/include" ../xorg-server-1.0.2/configure --prefix=/usr --build=i686-linux-gnu --host=mips-linux-gnu --enable-malloc0returnsnull \
--disable-static --enable-xorg --enable-dri --with-mesa-source=/usr/src/X11R70/Mesa-6.4.2 --with-fontdir=/usr/share/fonts/X11 --with-serverconfig-path=/etc/X11/xserver \
--enable-xtrap --enable-dmx --enable-vfb --disable-lbx --disable-xprint --disable-xorgconfig --disable-xorgcfg --with-xkb-path=/usr/share/X11/xkb \
--with-xkb-output=/var/lib/xkb
>make 2>&1 | tee make.log
>make install
grep -F libXfont.so.1 Xorg <cr> дает информацию, что данное слобо в собранном бинарнике присутствует.
Штатный Debian Xorg грузится без проблем, но если ему подменить хоть одну пересобранную библиотеку, он начинает ненаходить функции обозначенные в .so как undefined(U)
LoadFont и BitmapRegisterFontFileFunctions имеют тип U
(Undefined symbol)- как у пересобранного, так и у оригинального Debian модуля.
Но для части Debian модулей .so сделан strip и там отсутствует таблица символов.
Утилита ldd выдает одни и те же зависимости по пересобранным и оригинальным модулям. Но оригинальные при отсутствии зависимостей все работают:
mips:/usr/lib/xorg/modules/fonts# ldd ./libbitmap.so
libm.so.6 => /lib/libm.so.6 (0x2aaeb000)
libc.so.6 => /lib/libc.so.6 (0x2abab000)
/lib/ld.so.1 (0x55550000)
-------------------------------
mips:/usr/lib/xorg/modules/fonts# nm ./libbitmap.so
000409c0 D bitmapModule
00040980 D bitmapModuleData
U BitmapRegisterFontFileFunctions
000007f0 t bitmapSetup
00040a08 A __bss_start
000006c0 t call_gmon_start
00040a10 b completed.5502
00040958 d __CTOR_END__
00040954 d __CTOR_LIST__
w __cxa_finalize@@GLIBC_2.2
00000830 t __do_global_ctors_aux
000006f0 t __do_global_dtors_aux
00040970 d __dso_handle
00040960 d __DTOR_END__
0004095c d __DTOR_LIST__
000000cc a _DYNAMIC
00040a08 A _edata
00040a20 A _end
00040a08 A _fbss
00040970 D _fdata
000008c0 T _fini
000007b0 t frame_dummy
00000950 r __FRAME_END__
000006c0 T _ftext
000409d0 A _GLOBAL_OFFSET_TABLE_
w __gmon_start__
000489c0 A _gp
0000061c T _init
00040964 d __JCR_END__
00040964 d __JCR_LIST__
w _Jv_RegisterClasses
U LoadFont
00040974 d p.5500
0004098c d VersRec
------------------------
В /etc/ld.so.conf добавлена /usr/lib/xorg/lib/modules. Запуск ldconfig из этого же каталога выполнялся.
Не дайте пропасть неучу- как библиотеке libbitmap.so добавить нехватающую зависимость на libXfont.so.1 ?
--
С Уважением,
gosha.
Подробная информация о списке рассылки Sisyphus