alibaba / tengine

A distribution of Nginx with some advanced features

Home Page:https://tengine.taobao.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用xquic 1.6.2时,编译tengine时报错

ff2035 opened this issue · comments

使用xquic 1.6.2时,编译tengine时报错,(用xquic 1.6.0时是正常的)
tengine 为3.1.0:
编译参数如下:
./configure --prefix=/usr/local/nginx
--with-xquic-inc="../xquic-1.6.2/include"
--with-xquic-lib="../xquic-1.6.2/build"
--with-http_v2_module
--add-module=./modules/ngx_http_xquic_module
--with-openssl="../Tongsuo-8.3.2"
--with-http_realip_module
--with-http_stub_status_module
--with-http_ssl_module
--with-http_gzip_static_module
--with-stream
--with-stream_realip_module
--with-stream_ssl_module
--with-stream_sni
--add-module=../ngx_cache_purge-2.5.3
--add-module=../ngx_devel_kit-0.3.2
--add-module=../headers-more-nginx-module-0.34
--add-module=../nginx-module-vts-0.2.2
--add-module=./modules/ngx_http_upstream_dynamic_module
--add-module=./modules/ngx_http_upstream_check_module
--add-module=./modules/ngx_http_upstream_vnswrr_module
--with-http_lua_module
--with-luajit-lib=/usr/local/luajit/lib/
--with-luajit-inc=/usr/local/luajit/include/luajit-2.1/
--with-ld-opt=-Wl,-lpcre,-rpath,/usr/local/lib
--with-cc-opt="-I modules/ngx_http_lua_module/src" && make -j2

报错如下:
./modules/ngx_http_xquic_module/ngx_http_xquic.c
cc -c -I/usr/local/luajit/include/luajit-2.1/ -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I modules/ngx_http_lua_module/src -DNDK_SET_VAR -I src/core -I src/event -I src/event/modules -I src/os/unix -I src/proc -I ./modules/ngx_http_xquic_module -I ../xquic-1.6.2/include -I ../ngx_devel_kit-0.3.2/objs -I objs/addon/ndk -I ./modules/ngx_http_upstream_check_module -I modules/ngx_http_lua_module/src/api -I ../Tongsuo-8.3.2/.openssl/include -I objs -I src/http -I src/http/modules -I src/http/v2 -I ../ngx_devel_kit-0.3.2/src -I ../ngx_devel_kit-0.3.2/src -I ../ngx_devel_kit-0.3.2/objs -I objs/addon/ndk -I /usr/local/luajit/include/luajit-2.1/ -I src/stream
-o objs/addon/ngx_http_xquic_module/ngx_xquic_intercom.o
./modules/ngx_http_xquic_module/ngx_xquic_intercom.c
./modules/ngx_http_xquic_module/ngx_http_xquic.c: In function ‘ngx_http_xquic_session_process_packet’:
./modules/ngx_http_xquic_module/ngx_http_xquic.c:970:59: error: passing argument 9 of ‘xqc_engine_packet_process’ makes integer from pointer without a cast [-Werror=int-conversion]
970 | (xqc_msec_t) recv_time, NULL) != 0)
| ^~~~
| |
| void *
In file included from ./modules/ngx_http_xquic_module/ngx_http_v3_stream.h:14,
from ./modules/ngx_http_xquic_module/ngx_xquic.h:12,
from ./modules/ngx_http_xquic_module/ngx_http_xquic.h:13,
from ./modules/ngx_http_xquic_module/ngx_http_xquic.c:9:
../xquic-1.6.2/include/xquic/xquic.h:1416:34: note: expected ‘xqc_usec_t’ {aka ‘long unsigned int’} but argument is of type ‘void *’
1416 | uint64_t path_id, xqc_usec_t recv_time, void *user_data);
| ~~~~~~~~~~~^~~~~~~~~
./modules/ngx_http_xquic_module/ngx_http_xquic.c:967:9: error: too few arguments to function ‘xqc_engine_packet_process’
967 | if (xqc_engine_packet_process(qc->engine, (u_char *)packet->buf, recv_size,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./modules/ngx_http_xquic_module/ngx_http_v3_stream.h:14,
from ./modules/ngx_http_xquic_module/ngx_xquic.h:12,
from ./modules/ngx_http_xquic_module/ngx_http_xquic.h:13,
from ./modules/ngx_http_xquic_module/ngx_http_xquic.c:9:
../xquic-1.6.2/include/xquic/xquic.h:1412:11: note: declared here
1412 | xqc_int_t xqc_engine_packet_process(xqc_engine_t *engine,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [objs/Makefile:1849: objs/addon/ngx_http_xquic_module/ngx_http_xquic.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/root/source/tengine'
make: *** [Makefile:10: build] Error 2

Snipaste_2023-11-12_23-55-22

commented

xquic 1.6.2 修改了接口,稍后我们适配 1.6.2 版本,当前测试过的版本是 xquic 1.6.0,可以先使用 xquic 1.6.0 版本

commented

@ff2035 xquic 1.6.2 编译时 cmake 参数增加 -DXQC_NO_PID_PACKET_PROCESS=1 参数,就可以编译通过了

duplicate with #1875