Opened 13 years ago

Closed 13 years ago

#111 closed defect (fixed)

Can't build 1.1.5 on Solaris-like system

Reported by: Neddy Hai Nam Owned by: somebody
Priority: minor Milestone:
Component: nginx-core Version: 1.1.x
Keywords: Cc:
uname -a: SunOS sgngx01 5.11 oi_151a2 i86pc i386 i86pc Solaris
nginx -V: nginx version: nginx/1.1.14
built by gcc 4.6.2 (GCC)
configure arguments: --prefix=/usr/nginx --without-http_autoindex_module --without-http_geo_module --without-http_map_module --without-http_uwsgi_module --without-http_scgi_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module

Description

I'm running 1.1.4 as well and was trying to build 1.1.5 on testing server, the running system is OpenIndiana 151a2 32-bit, GCC 4.6.2, build conditions:

# ./configure --prefix=/usr/nginx --without-http_autoindex_module --without-http_geo_module --without-http_map_module --without-http_uwsgi_module --without-http_scgi_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module

# make

make -f objs/Makefile
make[1]: Entering directory `/tmp/nginx-1.1.15'
gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/nginx.o \
src/core/nginx.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_log.o \
src/core/ngx_log.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_palloc.o \
src/core/ngx_palloc.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_array.o \
src/core/ngx_array.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_list.o \
src/core/ngx_list.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_hash.o \
src/core/ngx_hash.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_buf.o \
src/core/ngx_buf.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_queue.o \
src/core/ngx_queue.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_output_chain.o \
src/core/ngx_output_chain.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_string.o \
src/core/ngx_string.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_parse.o \
src/core/ngx_parse.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_inet.o \
src/core/ngx_inet.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_file.o \
src/core/ngx_file.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_crc32.o \
src/core/ngx_crc32.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_murmurhash.o \
src/core/ngx_murmurhash.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_md5.o \
src/core/ngx_md5.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_rbtree.o \
src/core/ngx_rbtree.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_radix_tree.o \
src/core/ngx_radix_tree.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_slab.o \
src/core/ngx_slab.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_times.o \
src/core/ngx_times.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_shmtx.o \
src/core/ngx_shmtx.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_connection.o \
src/core/ngx_connection.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_cycle.o \
src/core/ngx_cycle.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_spinlock.o \
src/core/ngx_spinlock.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_cpuinfo.o \
src/core/ngx_cpuinfo.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_conf_file.o \
src/core/ngx_conf_file.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_resolver.o \
src/core/ngx_resolver.c

gcc -c -pipe -O -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 /usr/include/pcre -I objs \

-o objs/src/core/ngx_open_file_cache.o \
src/core/ngx_open_file_cache.c

src/core/ngx_open_file_cache.c: In function ângx_open_file_wrapperâ:
src/core/ngx_open_file_cache.c:635:19: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
src/core/ngx_open_file_cache.c:645:27: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
src/core/ngx_open_file_cache.c:693:15: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
cc1: all warnings being treated as errors

make[1]: * [objs/src/core/ngx_open_file_cache.o] Error 1
make[1]: Leaving directory `/tmp/nginx-1.1.15'
make:
* [build] Error 2

Change History (3)

comment:1 by Maxim Dounin, 13 years ago

Status: newaccepted

Ack, it looks like Solaris defines AT_FDCWD as unsigned:

#define        AT_FDCWD                        0xffd19553

and this causes warnings on compare with file descriptors (which use signed int type) with modern versions of gcc. Will be fixed shortly. As a workaround you may use

./configure --with-cc-opt="-Wno-error=sign-compare"

for now.

comment:2 by Maxim Dounin, 13 years ago

In [4486/nginx]:

Disable symlinks: added explicit cast of AT_FDCWD (ticket #111).

Solaris has AT_FDCWD defined to unsigned value, and comparison of a file
descriptor with it causes warnings in modern versions of gcc. Explicitly
cast AT_FDCWD to ngx_fd_t to resolve these warnings.

comment:3 by Maxim Dounin, 13 years ago

Resolution: fixed
Status: acceptedclosed

Fix committed.

Note: See TracTickets for help on using tickets.