Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 5732 - Не работает resolve из-под WINE приложений на ALTLinux 64   Make a simular bug
Summary: Не работает resolve из-под WINE приложений на ALTLinux 64
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Сетевые возможности ; TCP/IP (show other bugs)
Version: 1.0.12
Hardware: PC ALT Linux
: P4 minor
Target Milestone: ---
Assignee: Devaev Maxim
QA Contact: Денис Баранов
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 5991
  Show dependency treegraph
 
In work:
Reported: 2010-07-06 15:57 MSD by Денис Баранов
Modified: 2010-12-03 18:55 MSK (History)
3 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Денис Баранов 2010-07-06 15:57:10 MSD
WINE@Etersoft eter6.10/eter11
При попытке выполнить ping из $ wineconsole cmd на ALTLinux 64(тестировал на builder64) выдается unknow host
Хотя на 32 битном ALTLinux и на Ubuntu 64 работает без проблем.
Comment 1 Devaev Maxim 2010-11-09 20:24:13 MSK
Для проверки использовал код с примером из MSDN: http://msdn.microsoft.com/en-us/library/ms738524(VS.85).aspx , который так же воспроизвел данную проблему.

Она заключалась в неработающих функциях gethostbyname и gethostbyaddr. В dll socket.c они использовали линуксовые gethostbyname_r и gethostbyaddr_r
После отладок я выяснил, что ping.exe.so слинкован только с такими либами:
----------
[mdevaev@builder64 ping]$ ldd ping.exe.so 
        libwine.so.1 => /usr/lib/libwine.so.1 (0xb7e5a000)
        libc.so.6 => /lib/libc.so.6 (0xb7d02000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7cfd000)
        /lib/ld-linux.so.2 (0x00477000)
----------
Функции gethostbyname_r  и gethostbyaddr_r находились в libnss.so, которая динамически подгружается в glibc. Пути загрузки выглядели так:
----------
open("/lib/tls/libnss_dns.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)                                                                           
open("/lib/i686/libnss_dns.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)                                                                          
open("/lib/libnss_dns.so.2", O_RDONLY)  = -1 ENOENT (No such file or directory)                                                                              
open("/usr/lib/tls/libnss_dns.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libnss_dns.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
----------
То есть, программа пыталась получить доступ к 32-битным либам. В случае использования builder64 эти либы не были установлены. Проблема решилась установкой пакета glibc-nss.i586.
Comment 2 Денис Баранов 2010-12-03 18:55:34 MSK
Принято.