nginx -t > Illegal instruction

Sergey Talchuk tals1975 at gmail.com
Tue Oct 15 15:14:21 UTC 2013


Всем привет!

собрал nginx для своей системы без проблем (собирал на ней же). Только
похоже при запуске nginx -t не может определить тип процессора. К
сожалению, система находится на носителе доступном только для чтения.
Поэтому отдебажить системные библиотеки не представляется возможным.
Надеюсь на помощь.

Заранее спасибо.
Сергей

linux 2.4.28
uClibc
i486

======
$ nginx -V
nginx version: nginx/1.5.6
configure arguments: --prefix=/mnt/C/sys/share/nginx
--sbin-path=/mnt/C/sys/sbin/nginx
--conf-path=/mnt/C/sys/etc/nginx/nginx.conf --error-log-

path=/mnt/C/sys/var/nginx/log/error.log
--pid-path=/mnt/C/sys/var/nginx/run/nginx.pid
--lock-path=/mnt/C/sys/var/nginx/run/nginx.lock --http-log-

path=/mnt/C/sys/var/nginx/log/access.log
--http-client-body-temp-path=/mnt/C/sys/var/nginx/tmp/client_body_temp
--http-proxy-temp-

path=/mnt/C/sys/var/nginx/tmp/proxy_temp
--http-fastcgi-temp-path=/mnt/C/sys/var/nginx/tmp/fastcgi_temp
--without-http_charset_module --without-

http_gzip_module --without-http_ssi_module --without-http_userid_module
--without-http_access_module --without-http_auth_basic_module --without-

http_autoindex_module --without-http_geo_module --without-http_map_module
--without-http_referer_module --without-http_rewrite_module --without-

http_proxy_module --without-http_fastcgi_module
--without-http_memcached_module --without-http_limit_conn_module
--without-http_empty_gif_module

--without-http_browser_module --without-http_upstream_ip_hash_module
--without-mail_pop3_module --without-mail_imap_module --without-

mail_smtp_module --without-pcre --with-debug


=======
CFLAGS="-g -O0" \
./configure \
--prefix=/mnt/C/sys/share/nginx \
--sbin-path=/mnt/C/sys/sbin/nginx \
--conf-path=/mnt/C/sys/etc/nginx/nginx.conf \
--error-log-path=/mnt/C/sys/var/nginx/log/error.log \
--pid-path=/mnt/C/sys/var/nginx/run/nginx.pid \
--lock-path=/mnt/C/sys/var/nginx/run/nginx.lock \
--http-log-path=/mnt/C/sys/var/nginx/log/access.log \
--http-client-body-temp-path=/mnt/C/sys/var/nginx/tmp/client_body_temp \
--http-proxy-temp-path=/mnt/C/sys/var/nginx/tmp/proxy_temp \
--http-fastcgi-temp-path=/mnt/C/sys/var/nginx/tmp/fastcgi_temp \
--without-http_charset_module \
--without-http_gzip_module \
--without-http_ssi_module \
--without-http_userid_module \
--without-http_access_module \
--without-http_auth_basic_module \
--without-http_autoindex_module \
--without-http_geo_module \
--without-http_map_module \
--without-http_referer_module \
--without-http_rewrite_module \
--without-http_proxy_module \
--without-http_fastcgi_module \
--without-http_memcached_module \
--without-http_limit_conn_module \
--without-http_empty_gif_module \
--without-http_browser_module \
--without-http_upstream_ip_hash_module \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module \
--without-pcre \
--with-debug

sed -i -e 's/#ifndef NGX_HAVE_GNU_CRYPT_R/#if 0/'
src/os/unix/ngx_linux_config.h

make


=======
(gdb) run
Starting program: /tmp/mnt/C/sys/sbin/nginx

Program received signal SIGILL, Illegal instruction.
0x0805dca5 in ngx_cpuid (i=0, buf=0xbffff950) at src/core/ngx_cpuinfo.c:30
30      src/core/ngx_cpuinfo.c: No such file or directory.
        in src/core/ngx_cpuinfo.c
(gdb) bt
#0  0x0805dca5 in ngx_cpuid (i=0, buf=0xbffff950) at
src/core/ngx_cpuinfo.c:30
#1  0x0805dbbb in ngx_cpuinfo () at src/core/ngx_cpuinfo.c:84
#2  0x0806e4f7 in ngx_os_init (log=0x80c27a8) at
src/os/unix/ngx_posix_init.c:60
#3  0x08049e21 in main (argc=1, argv=0xbffffb94) at src/core/nginx.c:312
#4  0x40100b49 in __uClibc_main () from /lib/libc.so.0
(gdb) backtrace full
#0  0x0805dca5 in ngx_cpuid (i=0, buf=0xbffff950) at
src/core/ngx_cpuinfo.c:30
No locals.
#1  0x0805dbbb in ngx_cpuinfo () at src/core/ngx_cpuinfo.c:84
        vendor = (u_char *) 0x806e4d7 "\203▒\020▒▒▒\f\b\203=▒▒\f\b"
        vbuf = {0, 0, 0, 0, 0}
        cpu = {3221224340, 3221223832, 1073744062, 1073762344}
        model = 3221224588
#2  0x0806e4f7 in ngx_os_init (log=0x80c27a8) at
src/os/unix/ngx_posix_init.c:60
        n = 0
#3  0x08049e21 in main (argc=1, argv=0xbffffb94) at src/core/nginx.c:312
        i = -1073743152
        log = (ngx_log_t *) 0x80c27a8
        cycle = (ngx_cycle_t *) 0xbffffc8c
        init_cycle = {conf_ctx = 0x0, pool = 0x80cd080, log = 0x80c27a8,
new_log = {log_level = 0, file = 0x0, connection = 0, handler = 0, data =

0x0, action = 0x0, next = 0x0}, log_use_stderr = 0, files = 0x0,
free_connections = 0x0,
  free_connection_n = 0, reusable_connections_queue = {prev = 0x0, next =
0x0}, listening = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool =

0x0}, paths = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0},
open_files = {
    last = 0x0, part = {elts = 0x0, nelts = 0, next = 0x0}, size = 0,
nalloc = 0, pool = 0x0}, shared_memory = {last = 0x0, part = {elts = 0x0,

nelts = 0, next = 0x0}, size = 0, nalloc = 0, pool = 0x0}, connection_n =
0, files_n = 0,
  connections = 0x0, read_events = 0x0, write_events = 0x0, old_cycle =
0x0, conf_file = {len = 31, data = 0x80af0e0

"/mnt/C/sys/etc/nginx/nginx.conf"}, conf_param = {len = 0, data = 0x0},
conf_prefix = {len = 21,
    data = 0x80af0e0 "/mnt/C/sys/etc/nginx/nginx.conf"}, prefix = {len =
23, data = 0x80af0b6 "/mnt/C/sys/share/nginx/"}, lock_file = {len = 0,

data = 0x0}, hostname = {len = 0, data = 0x0}}
        ccf = (ngx_core_conf_t *) 0x0
#4  0x40100b49 in __uClibc_main () from /lib/libc.so.0
No symbol table info available.

===========

cat /proc/cpuinfo
processor       : 0
vendor_id       : CyrixInstead
cpu family      : 4
model           : 1
model name      : Cx486SLC
stepping        : unknown
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : no
fpu_exception   : no
cpuid level     : -1
wp              : yes
flags           :
bogomips        : 44.33

===========
$ nginx -t
Illegal instruction


$ strace nginx -t
execve("/usr/sbin/nginx", ["nginx", "-t"], [/* 31 vars */]) = 0
old_mmap(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0xbffff90c00000000) = 0x40005000
stat("/etc/ld.so.cache", 0xbffff874)    = -1 ENOENT (No such file or
directory)
open("/lib/libcrypto.so.0.9.7", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/libcrypto.so.0.9.7", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/libcrypto.so.0.9.7", O_RDONLY) = 4
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0xbffff90c00000000) = 0x40006000
read(4,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\266\2\0004\0\0\0"...,
4096) = 4096
old_mmap(NULL, 876544, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0xbffff90c00000000) = 0x40007000
old_mmap(0x40007000, 783880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4,
0xbffff90c00000000) = 0x40007000
old_mmap(0x400c7000, 73020, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4,
0xbffff90c000bf000) = 0x400c7000
old_mmap(0x400d9000, 14264, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x400d9000
close(4)                                = 0
munmap(0x40006000, 4096)                = 0
open("/lib/libc.so.0", O_RDONLY)        = 4
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0xbffff90c00000000) = 0x40006000
read(4,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\377\0\0004\0\0\0"...,
4096) = 4096
old_mmap(NULL, 606208, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0xbffff90c00000000) = 0x400dd000
old_mmap(0x400dd000, 574824, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4,
0xbffff90c00000000) = 0x400dd000
old_mmap(0x4016a000, 4488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4,
0xbffff90c0008d000) = 0x4016a000
old_mmap(0x4016c000, 19256, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0xbffff90c00000000) = 0x4016c000
close(4)                                = 0
munmap(0x40006000, 4096)                = 0
open("/lib/libdl.so.0", O_RDONLY)       = 4
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0xbffff90c00000000) = 0x40006000
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0
\7\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 12288, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0xbffff90c00000000) = 0x40171000
old_mmap(0x40171000, 4820, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 4,
0xbffff90c00000000) = 0x40171000
old_mmap(0x40173000, 1052, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4,
0xbffff90c00001000) = 0x40173000
close(4)                                = 0
munmap(0x40006000, 4096)                = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
brk(0)                                  = 0x80ccaa0
brk(0x80cdaa0)                          = 0x80cdaa0
brk(0x80ce000)                          = 0x80ce000
gettimeofday({1381849325, 873891}, NULL) = 0
open("/etc/TZ", O_RDONLY)               = 4
read(4, "FET-3\n", 68)                  = 6
read(4, "", 62)                         = 0
close(4)                                = 0
getpid()                                = 10038
open("/mnt/C/sys/var/nginx/log/error.log",
O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, 0644) = 4
uname({sys="Linux", node="myhost", ...})  = 0
_sysctl({{CTL_KERN, KERN_RTSIGMAX}, 2, 0x80cca54, 4, (nil), 0}) = 0
--- SIGILL (Illegal instruction) @ 0 (0) ---
+++ killed by SIGILL +++
Illegal instruction
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20131015/db4c2049/attachment-0001.html>


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