yandex-load / phantom

I/O engine with some modules

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Не собирается на i586

evgkrsk opened this issue · comments

На x86_64 с помощью gcc5 собирается почти нормально, но на i586 уже нет:

g++ -c -g -O3 -std=gnu++0x -fvisibility=hidden -fvisibility-inlines-hidden -fno-default-inline -fno-omit-frame-pointer -fno-common -fsigned-char -Wall -W -Werror -Wsign-promo -Woverloaded-virtual -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -isystem . -isystem ./pd/fixinclude -D_GNU_SOURCE=1  -Wundef  -MD -MF deps/phantom%io_stream%proto_http%handler_monitor%handler_monitor.s.o.d -fPIC phantom/io_stream/proto_http/handler_monitor/handler_monitor.C -o phantom/io_stream/proto_http/handler_monitor/handler_monitor.s.o
phantom/io_stream/proto_http/handler_monitor/handler_monitor.C: In member function 'virtual bool phantom::io_stream::proto_http::handler_monitor_t::content_t::print(pd::out_t&) const':
phantom/io_stream/proto_http/handler_monitor/handler_monitor.C:167:30: error: large integer implicitly truncated to unsigned type [-Werror=overflow]
      size_t limit = sizeval::unlimited;
                              ^
cc1plus: all warnings being treated as errors
make: *** [phantom/io_stream/proto_http/handler_monitor/handler_monitor.s.o] Error 1

В i586 size_t - uint32,
Тогда как а в https://github.com/yandex-load/phantom/blob/master/pd/base/size.H sizeval::unlimited заявлен как uint64.
Если никакой возможности переехать на x64 нет, я бы попробовал указать limit как "unsigned long long" и смотрел, не сломается ли где-то еще

Мне не критично, у самого везде x86_64. Просто пытаюсь собрать пакет для своего дистрибутива и так вот i586-версия не собирается. Хотя в документации (README.ru) указано, что i386 также поддерживается.

Т.е. надо или документацию обновить или сборку на i386 починить. Сам в C/C++ не силён, не осилю. Даже собрать gcc6 не смог.