Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: libgtk2.0-bin.deb undefined symbol


  • Subject: Re: lug-bg: libgtk2.0-bin.deb undefined symbol
  • From: peyo <peyo@xxxxxxxxx>
  • Date: Thu, 30 Sep 2004 12:44:16 +0300

On Thursday 30 September 2004 11:41, George Danchev wrote:
> On Thursday 30 September 2004 10:13, peyo wrote:
> --cut--
>
> > Еднакви са. С едно скриптче проверих сумите и на другите библиотеки.
>
> може да провериш и дали са променяни файлове на проблемната машина от тези
> пакети: debsums libgtk2.0-bin libgtk2.0-dev libgtk2.0-0 libc6 | less

Всичко е ОК.
>
> > > /usr/bin/gtk-query-immodules-2.0: relocation
> > > error: /usr/lib/libgtk-x11-2.0.so.0: undefined symbol: gdk_threads_lock
> > > наистина може да се предизвиква от много неща, и това се случва още при
> > > опита да се свърже с първия споделен обект... хм.
>
> ls -la /usr/lib/libgtk-x11-2.0.so.0 къде води ? Да не води към нещо
> в /usr/local и да линква от там стар либ дето няма този символ ?
>
> Т.е. имаш този символ в библиотеката:
> objdump --dynamic-syms /usr/lib/libgtk-x1objdump 
--dynamic-syms /usr/lib/libgtk-x11-2.0.so.0.400.10 | grep gdk_threads_lock

резултата е:

00000000      DO *UND*  00000004              gdk_threads_lock1-2.0.so.0 | 
grep gdk_threads_lock

> 00000000      DO *UND*  00000004              gdk_threads_lock

>
> но ликнера не ебава да я свързва, без променлива от  LD_LIBRARY_PATH.
>
> виж и това дали е така:
> # strace /usr/bin/gtk-query-immodules-2.0  1>/dev/null 2>2
> # grep libgtk 2
> open("/usr/lib/libgtk-x11-2.0.so.0", O_RDONLY) = 3

Има го И си го отваря съвсем читаво. 


>
> > > *да не би да е нещо свързано с /etc/ld.so.preload (LD_PRELOAD)
> >
> > ммм.... ще помисля върху това.
>
> т.е. имаш ли нямаш ли такъв файл, какво има в него.
>

Не. Няма го,


> > > * да е от средата на стартиране, на всички потребители ли
> > > изпълняващи /usr/bin/gtk-query-immodules-2.0 им се случва това в
> > > зависимост от това какво добавиш в LD_LIBRARY_PATH.
> >
> > на всички. Независимо дали от някакъв гарфичен терминал или от виртуална
> > конзола.
> >
> > Двете машини са обсолютно идентични що се отнася до пакети. Единствено
> > разликата в хардуера налага различно ядро със съответните модули.
>
> мда, интересно защо линкера се държи по различен начин ;-)

Нека обобщя:

- Обвиняемите библиотеки са читави(?) или поне са това, което трябва да е.
(debsum, md5sum)

- Указателят за местонахождението на динамичните библиотеки е правилен
- Няма счупени зависимости и/или грешки по glibc
- Обекта gdk_threads_lock си съществува и е описан (очевидно) 
- Няма указания за предварително зареждане (ld.so.preload)
- и в _двата_ случая линкера си намира библиотеката
----
- По неясни причини в лошият случай обърни внимание:

old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x407d0000
забелязвам смяна на режима на достъп към read/write 
 --> mprotect(0x402fe000, 376832, PROT_READ|PROT_WRITE) = 0
и тук веднага(без междувременно да се случва нещо там) смяна към read/exec
--> mprotect(0x402fe000, 376832, PROT_READ|PROT_EXEC) = 0

writev(2, [{"gtk-query-immodules-2.0", 23}, {": ", 2}, {"relocation error", 
16}, {": ", 2}, {"/usr/lib/libgtk-x11-2.0.so.0", 28}, {": ", 2}, {"undefined 
symbol: gdk_threads_lo"..., 34}, {"", 0}, {"", 0}, {"\n", 1}], 10) = 108
exit_group(127)                         = ?

Последните три реда ги няма в читавото изпълнение, което означава, че между 
"мапването " и "ънмапването"(което го има в нормалното изпълнение) се случва 
нещо, което предизвиква последователна смяна на режима на достъп(което пък 
въобще го няма в нормалното изпълнение)

Което пък ме кара да се обърна към gdb да видя ако мога какво става 
междувременно. 



-- 
---
"Времето е еднопосочно. 
Няма начин да се върнеш назад,
за да си допиеш."
***
Ако не отговарям на писмата Ви - погледнете тук: http://6lyokavitza.org/mail
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.