Compiler fail when I set WITH_BORINGSSL=1 and WITH_IO_URING=1 make
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- c, linux
- Área
- build-system, networking
Línea de trabajo
Reproduce the combined build with WITH_BORINGSSL=1 WITH_IO_URING=1, then compare it with the two successful single-option builds. Inspect src/crypto/openssl.c and src/io_uring/io_loop.c, focusing on the incomplete-type errors and pointer warnings. Done means the combined command compiles without those errors and warnings.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I have installed the libraries:
apt-get install libasio-dev libfmt-dev libuv1-dev zlib1g-dev libssl-dev liburing-dev
I have downloaded the last version with:
git clone --recursive https://github.com/uNetworking/uWebSockets
I have build uSockets/boringssl with CMAKE
mkdir build
cd build
cmake ..
make
cd /uWebSockets
So, if I set only "WITH_BORINGSSL=1 make", it compiles without problems.
If I set only "WITH_IO_URING=1 make", it also compiles without problems.
But if I set them together like "WITH_BORINGSSL=1 WITH_IO_URING=1 make", I get the following compilation errors:
cc -flto -Iboringssl/include -pthread -DLIBUS_USE_OPENSSL -DLIBUS_USE_IO_URING -std=c11 -Isrc -O3 -c src/.c src/eventing/.c src/crypto/.c src/io_uring/.c
src/crypto/openssl.c:61:32: error: field ‘sc’ has incomplete type
61 | struct us_socket_context_t sc;
| ^~
src/crypto/openssl.c:84:24: error: field ‘s’ has incomplete type
84 | struct us_socket_t s;
| ^
src/crypto/openssl.c: In function ‘ssl_on_open’:
src/crypto/openssl.c:155:72: error: invalid use of undefined type ‘struct us_loop_t’
155 | struct loop_ssl_data *loop_ssl_data = (struct loop_ssl_data *) loop->data.ssl_data;
| ^~
src/crypto/openssl.c: In function ‘ssl_on_data’:
src/crypto/openssl.c:202:72: error: invalid use of undefined type ‘struct us_loop_t’
202 | struct loop_ssl_data *loop_ssl_data = (struct loop_ssl_data *) loop->data.ssl_data;
| ^~
src/crypto/openssl.c: In function ‘us_internal_init_loop_ssl_data’:
src/crypto/openssl.c:355:14: error: invalid use of undefined type ‘struct us_loop_t’
355 | if (!loop->data.ssl_data) {
| ^~
src/crypto/openssl.c:373:13: error: invalid use of undefined type ‘struct us_loop_t’
373 | loop->data.ssl_data = loop_ssl_data;
| ^~
src/crypto/openssl.c: In function ‘us_internal_free_loop_ssl_data’:
src/crypto/openssl.c:379:72: error: invalid use of undefined type ‘struct us_loop_t’
379 | struct loop_ssl_data *loop_ssl_data = (struct loop_ssl_data *) loop->data.ssl_data;
| ^~
src/crypto/openssl.c: In function ‘us_internal_create_child_ssl_socket_context’:
src/crypto/openssl.c:410:209: error: invalid application of ‘sizeof’ to incomplete type ‘struct us_socket_context_t’
410 | struct us_internal_ssl_socket_context_t *child_context = (struct us_internal_ssl_socket_context_t *) us_create_socket_context(0, context->sc.loop, sizeof(struct us_internal_ssl_socket_context_t) - sizeof(struct us_socket_context_t) + context_ext_size, options);
| ^~~~~~
src/crypto/openssl.c: In function ‘us_internal_create_ssl_socket_context’:
src/crypto/openssl.c:648:191: error: invalid application of ‘sizeof’ to incomplete type ‘struct us_socket_context_t’
648 | struct us_internal_ssl_socket_context_t *context = (struct us_internal_ssl_socket_context_t *) us_create_socket_context(0, loop, sizeof(struct us_internal_ssl_socket_context_t) - sizeof(struct us_socket_context_t) + context_ext_size, options);
| ^~~~~~
src/crypto/openssl.c: In function ‘us_internal_ssl_socket_context_listen’:
src/crypto/openssl.c:690:124: error: invalid application of ‘sizeof’ to incomplete type ‘struct us_socket_t’
690 | return us_socket_context_listen(0, &context->sc, host, port, options, sizeof(struct us_internal_ssl_socket_t) - sizeof(struct us_socket_t) + socket_ext_size);
| ^~~~~~
src/crypto/openssl.c: In function ‘us_internal_ssl_socket_context_listen_unix’:
src/crypto/openssl.c:694:123: error: invalid application of ‘sizeof’ to incomplete type ‘struct us_socket_t’
694 | return us_socket_context_listen_unix(0, &context->sc, path, options, sizeof(struct us_internal_ssl_socket_t) - sizeof(struct us_socket_t) + socket_ext_size);
| ^~~~~~
src/crypto/openssl.c: In function ‘us_internal_ssl_adopt_accepted_socket’:
src/crypto/openssl.c:699:152: error: invalid application of ‘sizeof’ to incomplete type ‘struct us_socket_t’
699 | return (struct us_internal_ssl_socket_t *) us_adopt_accepted_socket(0, &context->sc, accepted_fd, sizeof(struct us_internal_ssl_socket_t) - sizeof(struct us_socket_t) + socket_ext_size, addr_ip, addr_ip_length);
| ^~~~~~
src/crypto/openssl.c: In function ‘us_internal_ssl_socket_context_connect’:
src/crypto/openssl.c:703:174: error: invalid application of ‘sizeof’ to incomplete type ‘struct us_socket_t’
703 | return (struct us_internal_ssl_socket_t *) us_socket_context_connect(0, &context->sc, host, port, source_host, options, sizeof(struct us_internal_ssl_socket_t) - sizeof(struct us_socket_t) + socket_ext_size);
| ^~~~~~
src/crypto/openssl.c: In function ‘us_internal_ssl_socket_context_connect_unix’:
src/crypto/openssl.c:707:167: error: invalid application of ‘sizeof’ to incomplete type ‘struct us_socket_t’
707 | return (struct us_internal_ssl_socket_t *) us_socket_context_connect_unix(0, &context->sc, server_path, options, sizeof(struct us_internal_ssl_socket_t) - sizeof(struct us_socket_t) + socket_ext_size);
| ^~~~~~
src/crypto/openssl.c: In function ‘us_internal_ssl_socket_write’:
src/crypto/openssl.c:764:72: error: invalid use of undefined type ‘struct us_loop_t’
764 | struct loop_ssl_data *loop_ssl_data = (struct loop_ssl_data *) loop->data.ssl_data;
| ^~
src/crypto/openssl.c: In function ‘us_internal_ssl_socket_shutdown’:
src/crypto/openssl.c:817:76: error: invalid use of undefined type ‘struct us_loop_t’
817 | struct loop_ssl_data *loop_ssl_data = (struct loop_ssl_data *) loop->data.ssl_data;
| ^~
src/crypto/openssl.c: In function ‘us_internal_ssl_socket_context_adopt_socket’:
src/crypto/openssl.c:855:152: error: invalid application of ‘sizeof’ to incomplete type ‘struct us_socket_t’
855 | return (struct us_internal_ssl_socket_t *) us_socket_context_adopt_socket(0, &context->sc, &s->s, sizeof(struct us_internal_ssl_socket_t) - sizeof(struct us_socket_t) + ext_size);
| ^~~~~~
src/io_uring/io_loop.c: In function ‘us_create_loop’:
src/io_uring/io_loop.c:343:20: warning: passing argument 1 of ‘posix_memalign’ from incompatible pointer type [-Wincompatible-pointer-types]
343 | posix_memalign(®.ring_addr, 1024 * 4, sizeof(struct io_uring_buf) * 4096);
| ^~~~~~~~~~~~~~
| |
| __u64 * {aka long long unsigned int *}
In file included from src/io_uring/internal.h:5,
from src/io_uring/io_loop.c:23:
/usr/include/stdlib.h:599:35: note: expected ‘void **’ but argument is of type ‘__u64 *’ {aka ‘long long unsigned int *’}
599 | extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
| ~~~~~~~^~~~~~~~
src/io_uring/io_loop.c:346:20: warning: assignment to ‘struct io_uring_buf_ring *’ from ‘__u64’ {aka ‘long long unsigned int’} makes pointer from integer without a cast [-Wint-conversion]
346 | loop->buf_ring = reg.ring_addr;
- Lenguaje dominante
- C++
- Estrellas
- 19k
- Forks
- 1.9k
- Merge medio
- 3 h 24 min
- PR fusionados (30 d)
- 5
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de uNetworking/uWebSockets
-
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
uNetworking/uWebSockets#1948 ·
-
Some caching featuresAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
uNetworking/uWebSockets#1945 · 3 comentarios ·
-
Chunked encoding parser fixesAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
uNetworking/uWebSockets#1936 · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 50/100
uNetworking/uWebSockets#1931 · 5 comentarios ·
-
Client SupportAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
uNetworking/uWebSockets#1920 · 1 comentario ·
Todos los issues de uNetworking/uWebSockets
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
lxqt/qtermwidget#688 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
cpinitiative/usaco-guide#6665 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mpfaffenberger/privateer_reimagined#658 ·
Los mantenedores suelen responder en 1 día
-
Broken links in the docsAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
microsoft/onnxruntime#33018 ·
Los mantenedores suelen responder en 2 días
-
Type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 2 días