ngxin 0.8.50 в Maverick Beta: ошибка make в ngx user.c

fzfx nginx-forum на nginx.us
Сб Сен 4 21:48:23 MSD 2010


Проблема на этапе make при следующих
условиях:
- дата: 04.09.2010;
- версия ОС: Ubuntu Maverick Beta Desktop x86_64;
- версия nginx, на которых проверялось
наличие проблемы: от 0.8.44 до 0.8.50;
- версия GCC: стандартная для ОС (4.4).
./configure прошёл в соответствии с
описанием процесса на nginx.ru, при этом
были указаны пути для исходников PCRE,
OpenSSL и GLib.

Последние строчки вывода make:
[code]
gcc -c -pipe  -march=amdfam10 -mtune=amdfam10 -O3 -W -Wall
-Wpointer-arith -Wno-unused-parameter -Wunused-function
-Wunused-variable -Wunused-value -Werror -g  -I src/core -I src/event -I
src/event/modules -I src/os/unix -I /home/f/Downloads/pcre-8.10 -I
/home/f/Downloads/openssl-1.0.0a/.openssl/include -I
/home/f/Downloads/gzip-1.2.4 -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_crypt’:
src/os/unix/ngx_user.c:30: error: storage size of ‘cd’ isn’t
known
cc1: warnings being treated as errors
src/os/unix/ngx_user.c:38: error: implicit declaration of function
‘crypt_r’
src/os/unix/ngx_user.c:30: error: unused variable ‘cd’
make[1]: *** [objs/src/os/unix/ngx_user.o] Ошибка 1
make[1]: Выход из каталога
`/home/f/Downloads/nginx-0.8.50'
make: *** [build] Ошибка 2
[/code]
На параметры -march и -mtune прошу внимание
не обращать, проверялось и без них.

Часть содержимого /usr/include/crypt.h:
[code]
struct crypt_data
  {
    char keysched[16 * 8];
    char sb0[32768];
    char sb1[32768];
    char sb2[32768];
    char sb3[32768];
    /* end-of-aligment-critical-data */
    char crypt_3_buf[14];
    char current_salt[2];
    long int current_saltbits;
    int  direction, initialized;
  };
[/code]

Проблему попробовал обойти,
переименовав src/os/unix/ngx_user.c в ngx_user.cpp,
заменив в objs/Makefile все два вхождения
ngx_user.c на ngx_user.cpp и доустановив g++ через
менеджер пакетов. Однако указанные
выше ошибки заменились другими:
[code]
gcc -c -pipe  -march=amdfam10 -mtune=amdfam10 -O3 -W -Wall
-Wpointer-arith -Wno-unused-parameter -Wunused-function
-Wunused-variable -Wunused-value -Werror -g  -I src/core -I src/event -I
src/event/modules -I src/os/unix -I /home/f/Downloads/pcre-8.10 -I
/home/f/Downloads/openssl-1.0.0a/.openssl/include -I
/home/f/Downloads/gzip-1.2.4 -I objs \
		-o objs/src/os/unix/ngx_user.o \
		src/os/unix/ngx_user.cpp
src/os/unix/ngx_user.cpp: In function ‘ngx_int_t
ngx_crypt(ngx_pool_t*, u_char*, u_char*, u_char**)’:
src/os/unix/ngx_user.cpp:30: error: aggregate ‘crypt_data cd’ has
incomplete type and cannot be defined
src/os/unix/ngx_user.cpp:38: error: ‘crypt_r’ was not declared in
this scope
src/os/unix/ngx_user.cpp:45: error: invalid conversion from ‘void*’
to ‘u_char*’
make[1]: *** [objs/src/os/unix/ngx_user.o] Ошибка 1
make[1]: Выход из каталога
`/home/f/Downloads/nginx-0.8.50'
make: *** [build] Ошибка 2
[/code]

На этом мои попытки решить проблему
себя исчерпали.
Есть какой-нибудь простой способ
обойти или исправить данное поведение,
или же мне следует пока не
заморачиваться установкой nginx в Maverick?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,127115,127115#msg-127115




Подробная информация о списке рассылки nginx-ru