Estoy tratando de compilar nginx en una máquina Ubuntu con GCC. Mi versión de Glibc es 2.31.
m@feynman:~/Junk/nginx-1.9.9 $ /lib/x86_64-linux-gnu/libc.so.6 --version GNU C Library (Ubuntu GLIBC 2.31-0ubuntu9.2) stable release version 2.31.He descargado un montón de versiones diferentes de https://nginx.org/download/ y probé con ellas y falla cada vez.
./configure --with-threads --with-http_ssl_module --with-cc-opt="-Wno-error" make ./configure genera el siguiente archivo en objs/Makefile :
CC = cc CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g -Wno-error CPP = cc -E LINK = $(CC) ...Esto me da este error a continuación.
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g -Wno-error -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/src/os/unix/ngx_posix_init.o \ src/os/unix/ngx_posix_init.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g -Wno-error -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/src/os/unix/ngx_user.o \ src/os/unix/ngx_user.c src/os/unix/ngx_user.c: In function 'ngx_libc_crypt': src/os/unix/ngx_user.c:36:7: error: 'struct crypt_data' has no member named 'current_salt' 36 | cd.current_salt[0] = ~salt[0]; | ^ make[1]: *** [objs/Makefile:749: objs/src/os/unix/ngx_user.o] Error 1 make[1]: Leaving directory '/home/m/Junk/nginx-1.9.9' make: *** [Makefile:8: build] Error 2Intenté instalar SSL lib y otros similares y pensé que ayudaría y nada funcionó.
sudo apt install libpcre3-dev libssl-devPor si alguien buscaba una solución al problema en sí:
El campo current_salt ya no es el nombre del campo donde se almacena el resultado y debe actualizarse.
En su lugar, se output el nombre del campo, como se define en /usr/include/crypt.h en dicho sistema:
/* Memory area used by crypt_r. */ struct crypt_data { /* crypt_r writes the hashed password to this field of its 'data' argument. crypt_rn and crypt_ra do the same, treating the untyped data area they are supplied with as this struct. */ char output[CRYPT_OUTPUT_SIZE];