Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Compiler fail when I set WITH_BORINGSSL=1 and WITH_IO_URING=1 make

Abierto
#1,848 1 comentario 0 reacciones 0 asignados Ver en GitHub

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

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(&reg.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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de uNetworking/uWebSockets

Todos los issues de uNetworking/uWebSockets

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.