Half-Life и Adrenaline Gamer форум
http://aghl.ru/forum/

hlds 5787 + ubuntu 16.04
http://aghl.ru/forum/viewtopic.php?f=10&t=2589
Страница 3 из 4

Автор:  Lev [ 15 дек 2016, 04:16 ]
Заголовок сообщения:  Re: hlds 5787 + ubuntu 16.04

Давай попробуем вывод
Код:
ldd -r ./hlds_i686
ldd -r ./filesystem_stdio_i386.so
глянуть с сервера и десктопа, для 57хх и для 61хх (четыре варианта будет).

Автор:  D-AIRY [ 15 дек 2016, 04:33 ]
Заголовок сообщения:  Re: hlds 5787 + ubuntu 16.04

Код:
echo Executing AMX Mod X Configuration File
как ни странно выдает именно "Executing AMX Mod X Configuration File"

server + 5787
Код:
root@Ubuntu-1604-xenial-64-minimal /hlds/hlhl # ldd -r hlds_i686
        linux-gate.so.1 =>  (0xf77cb000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf77bc000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf779f000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf75e8000)
        /lib/ld-linux.so.2 (0x5656d000)
root@Ubuntu-1604-xenial-64-minimal /hlds/hlhl # ldd -r filesystem_stdio_i386.so
        linux-gate.so.1 =>  (0xf77d0000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf77a0000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf75ea000)
        /lib/ld-linux.so.2 (0x56572000)

desk + 5787

Код:
hlds@DS-PC:~/hlds.old$ ldd -r hlds_i686
        linux-gate.so.1 => (0xf7777000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf774d000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7730000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7579000)
        /lib/ld-linux.so.2 (0x56595000)
hlds@DS-PC:~/hlds.old$ ldd -r filesystem_stdio_i386.so
        linux-gate.so.1 => (0xf7775000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf772a000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7574000)
        /lib/ld-linux.so.2 (0x5663c000)

в билде 6153 этих файлов уже нет, есть hlds_linux и filesyctem_stdio.so

serv + 6153
Код:
root@Ubuntu-1604-xenial-64-minimal /hlds/hlds/6153 # ldd -r hlds_linux
        linux-gate.so.1 =>  (0xf7729000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75a7000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf75a2000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7584000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf73ce000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7379000)
        /lib/ld-linux.so.2 (0x565b2000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf735c000)
root@Ubuntu-1604-xenial-64-minimal /hlds/hlds/6153 # ldd -r filesystem_stdio.so
        linux-gate.so.1 =>  (0xf77e7000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf77b7000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7640000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7622000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf746c000)
        /lib/ld-linux.so.2 (0x5658f000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7417000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf73fa000)

desk + 6153

Код:
hlds@DS-PC:~/hlds.6153/6153$ ldd -r hlds_linux
        linux-gate.so.1 => (0xf7799000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75fc000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf75f7000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf75d9000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7423000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf73ce000)
        /lib/ld-linux.so.2 (0x5663f000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf73b1000)
hlds@DS-PC:~/hlds.6153/6153$ ldd -r filesystem_stdio.so
        linux-gate.so.1 => (0xf77a4000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7759000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75e2000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf75c4000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf740e000)
        /lib/ld-linux.so.2 (0x565c5000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf73b9000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf739c000)

Автор:  Lev [ 15 дек 2016, 05:31 ]
Заголовок сообщения:  Re: hlds 5787 + ubuntu 16.04

И тоже ещё для файла engine_i486.so.

Автор:  D-AIRY [ 15 дек 2016, 05:35 ]
Заголовок сообщения:  Re: hlds 5787 + ubuntu 16.04

 srv+5787

Автор:  Lev [ 15 дек 2016, 06:07 ]
Заголовок сообщения:  Re: hlds 5787 + ubuntu 16.04

Код:
exec t.cfg;// AMX Mod X Configuration File;echo Executing AMX Mod X Configuration File; ; ;
А такое что выдаст?

Автор:  D-AIRY [ 15 дек 2016, 06:15 ]
Заголовок сообщения:  Re: hlds 5787 + ubuntu 16.04

Код:
exec t.cfg;// AMX Mod X Configuration File;echo Executing AMX Mod X Configuration File; ; ;
couldn't exec t.cfg
EX Modaation Fileation File

Автор:  Lev [ 15 дек 2016, 06:17 ]
Заголовок сообщения:  Re: hlds 5787 + ubuntu 16.04

Ну и попроще тогда:
Код:
// AMX Mod X Configuration File;echo Executing AMX Mod X Configuration File

Автор:  D-AIRY [ 15 дек 2016, 06:20 ]
Заголовок сообщения:  Re: hlds 5787 + ubuntu 16.04

Код:
// AMX Mod X Configuration File;echo Executing AMX Mod X Configuration File
Executing AMX Mod X Configuration File

Добавлено спустя 36 секунд:
 

Автор:  Lev [ 15 дек 2016, 06:40 ]
Заголовок сообщения:  Re: hlds 5787 + ubuntu 16.04

Наиболее вероятно что это из-за этого места:
Код:
void Cbuf_Execute(void)
{
...
      // delete the text from the command buffer and move remaining commands down
      // this is necessary because commands (exec, alias) can insert data at the
      // beginning of the text buffer

      if (i == cmd_text.cursize)
      {
         cmd_text.cursize = 0;
      }
      else
      {
         i++;
         cmd_text.cursize -= i;
#ifdef REHLDS_FIXES
         // dst overlaps src
         Q_memmove(text, text + i, cmd_text.cursize);
#else // REHLDS_FIXES
         Q_memcpy(text, text + i, cmd_text.cursize);
#endif // REHLDS_FIXES
      }
https://msdn.microsoft.com/en-us/library/dswaw1wk.aspx
Цитата:
If the source and destination overlap, the behavior of memcpy is undefined. Use memmove to handle overlapping regions.
В ReHLDS это пофиксено.
На 6153 билде не используется эта функция из либы. А встроена в engine (статическая линковка, я думаю). Поэтому он не зависит.
Почему на 57хх возникать начало сейчас, а раньше не было и т.п. - сложно ответить. Возможно в реализации memcpy что-то поменяли.
В принципе, можно файл engine_i486.so пропатчить чтобы вызывался memmove вместо memcpy.

Автор:  D-AIRY [ 15 дек 2016, 06:45 ]
Заголовок сообщения:  Re: hlds 5787 + ubuntu 16.04

Похоже на правду, завтра попробую исправить эту штуку, по результатам отпишу.

Страница 3 из 4 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/