rehlds-3.13.0.788 + gcc 9.4.0

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
174
Реакции
51
Помог
6 раз(а)
Ошибка
In file included from /home/rehlds/files/rehlds-3.13.0.788/rehlds/rehlds/precompiled.h:17,
from /home/rehlds/files/rehlds-3.13.0.788/rehlds/engine/host.cpp:29:
In function ‘char* Q_strlcpy(char*, const char*, size_t)’,
inlined from ‘void SV_ClientPrintf_internal(const char*)’ at /home/rehlds/files/rehlds-3.13.0.788/rehlds/engine/host.cpp:371:11:
/home/rehlds/files/rehlds-3.13.0.788/rehlds/public/strtools.h:153:11: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
153 | Q_strncpy(dest, src, size - 1);
| ^
/home/rehlds/files/rehlds-3.13.0.788/rehlds/engine/host.cpp: In function ‘void SV_ClientPrintf_internal(const char*)’:
/home/rehlds/files/rehlds-3.13.0.788/rehlds/engine/host.cpp:371:36: note: length computed here
371 | Q_strlcpy(string, Dest, min(strlen(Dest) + 1, sizeof(string)));
| ~~~~~~^~~~~~
In file included from /home/rehlds/files/rehlds-3.13.0.788/rehlds/rehlds/precompiled.h:17,
from /home/rehlds/files/rehlds-3.13.0.788/rehlds/engine/host.cpp:29:
In function ‘char* Q_strlcpy(char*, const char*, size_t)’,
inlined from ‘void SV_ClientPrintf_internal(const char*)’ at /home/rehlds/files/rehlds-3.13.0.788/rehlds/engine/host.cpp:371:11,
inlined from ‘void IVoidHookChainImpl<t_args>::callNext(t_args ...) [with t_args = {const char*}]’ at /home/rehlds/files/rehlds-3.13.0.788/rehlds/rehlds/hookchains_impl.h:90:5,
inlined from ‘void IVoidHookChainRegistryImpl<t_args>::callChain(IVoidHookChainRegistryImpl<t_args>::origfunc_t, t_args ...) [with t_args = {const char*}]’ at /home/rehlds/files/rehlds-3.13.0.788/rehlds/rehlds/hookchains_impl.h:150:3,
inlined from ‘void SV_ClientPrintf(const char*, ...)’ at /home/rehlds/files/rehlds-3.13.0.788/rehlds/engine/host.cpp:363:49:
/home/rehlds/files/rehlds-3.13.0.788/rehlds/public/strtools.h:153:11: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
153 | Q_strncpy(dest, src, size - 1);
| ^
/home/rehlds/files/rehlds-3.13.0.788/rehlds/engine/host.cpp: In function ‘void SV_ClientPrintf(const char*, ...)’:
/home/rehlds/files/rehlds-3.13.0.788/rehlds/engine/host.cpp:371:36: note: length computed here
371 | Q_strlcpy(string, Dest, min(strlen(Dest) + 1, sizeof(string)));
| ~~~~~~^~~~~~
Компилятор
Локальный
Amx Mod X
1.9.0
Исходный код
https://github.com/dreamstalker/rehlds/
В процессе компиляции rehlds-3.13.0.788 с помощью gcc 9.4.0
Код:
./build.sh --compiler=gcc
в консоль вылезают warning, при этом компиляция завершается успешно.
Является ли это ошибкой кода, либо это просто предупреждение которое можно смело игнорировать?
Либо это можно пофиксить руками в исходниках? (подскажите плз как)
rehlds-3.13.0.788+gcc.jpg
 
В этой теме было размещено решение! Перейти к решению.
Последнее редактирование:
Сообщения
313
Реакции
21
Помог
7 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
D1esel, ну любые ошибки - это не всегда есть ГУД. На счёт того, что компилирование чего-либо rehlds/regame/reapi & etc... происходит успешно, с умеющимися ошибками - значит всё нормально, а это можно сказать чисто уведомления, которые можно игнорить. Конечно, желательно бы это исправить т.к. кто вносит правки в код, не всегда делают так как нужно что-либо, от сюда и получаются варринги...
 
Сообщения
174
Реакции
51
Помог
6 раз(а)
Надо фиксить rehlds-3.13.0.788 падает сервер
Код:
CRASH: Чт 18 янв 2024 22:37:53 MSK

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./hlds_linux -game cstrike -strictportbind +ip XX.XX.XX.XX -port 27015 +clie'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0xf5aceed1 in Sys_Error(char const*, ...) () from /home/rehlds/serverfiles/engine_i486.so
[Current thread is 1 (Thread 0xf7c75900 (LWP 224536))]
#0  0xf5aceed1 in Sys_Error(char const*, ...) () from /home/rehlds/serverfiles/engine_i486.so
#1  0xf5afb60c in MSG_WriteByte(sizebuf_s*, int) () from /home/rehlds/serverfiles/engine_i486.so
#2  0xf5ad42db in Host_ClientCommands(char const*, ...) () from /home/rehlds/serverfiles/engine_i486.so
#3  0xf5ae8db1 in PF_stuffcmd_I(edict_s*, char const*, ...) () from /home/rehlds/serverfiles/engine_i486.so
#4  0xf01cf3a3 in ?? ()
#5  0x00000001 in ?? ()
#6  0xf0b87544 in BuyZoneIcon_Clear () from /home/rehlds/serverfiles/cstrike/dlls/cs.so
#7  0xf0c9b004 in ?? () from /home/rehlds/serverfiles/cstrike/dlls/cs.so
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
No symbol table info available.
 
Последнее редактирование:
Сообщения
174
Реакции
51
Помог
6 раз(а)
Nordic Warrior,
Код:
L 18/01/2024 - 22:37:52: (map "de_dust2_2x2") SZ_GetSpace: tried to write to an uninitialized sizebuf_t: ???
 
Сообщения
313
Реакции
21
Помог
7 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Сообщения
273
Реакции
2
kto-to,чем хорош gcc?
icc же от интел для интел
clang ещё бы чекнуть пишут зависит от ос и компилятора ядра
 
Сообщения
313
Реакции
21
Помог
7 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
1337322228, загугли чем лучше, ты ж умный(
Скажу ожно лишь, что лучше собирать рехлдс и регейм самим, почему и говорят, собирай проект на той же машине, где собираешься запускать.
 
Сообщения
273
Реакции
2
kto-to,приведи пример и пруфы чем лучше какой процент ты выигрываешь инструкции старые не avx512 на которых только начинают процы работать
и gcc на сколько знаю не компилирует как icc с тонкой оптимизацией - или начитался статей что билд от валв gcc собран ?
так я ставил разницы особо не видел может тариф про на арене без разницы дает ощущение
 
Сообщения
169
Реакции
462
Помог
2 раз(а)
D1esel, это не ошибки, а предупреждения для программистов.
Компилятор обращает внимание на то, что размер строки указывается каким-то непонятным (для него) числом. А если это число будет больше, чем реальный размер строки, это может привести к переполнению буфера.

Что касается компиляторов, ничего не сравнивал и замеров не проводил, но думаю, учитывая что icc используемый для компилирования rehlds очень старый, gcc, даже 9 версии как у ТС уже намного обогнал его в развитии.

Тем не менее, новые версии компиляторов от intel (которые уже идут на базе llvm), по заявлениям самих intel, генерируют более быстрый код, чем gcc и clang.
 
Сообщения
273
Реакции
2
the_hunter, сможете собрать на разных компиляторах билды чтобы более наглядно было ?
 
Сообщения
313
Реакции
21
Помог
7 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
1337322228, дак собери сам, в чём проблема то?
1705692291326.png
 
Сообщения
273
Реакции
2
kto-to,На deb системах легко собирается а вот rhel уже ошибки сыпет и не хочет собирать ((((
 
Сообщения
313
Реакции
21
Помог
7 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
1337322228, ну так, наверное ошибки можно/нужно исправлять? Скорее всего каких-то либ не хватает и усё.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу