Trunk can't be compiled atm

Unable to compile nginx trunk…

gcc-4.6.1-9 (Ubuntu)
./configure --with-openssl=/root/openssl/openssl-dev/openssl
–with-cpu-opt=pentium4 --with-http_gzip_static_module
–with-http_ssl_module --with-ipv6 --without-mail_pop3_module
–without-mail_imap_module --without-mail_smtp_module
–without-http_charset_module --without-http_ssi_module
–without-http_userid_module --without-http_autoindex_module
–without-http_rewrite_module --with-pcre --with-cc-opt=’-O2 -g
-march=i386 -mtune=i686’

gcc -o objs/nginx
objs/src/core/nginx.o
objs/src/core/ngx_log.o
objs/src/core/ngx_palloc.o
objs/src/core/ngx_array.o
objs/src/core/ngx_list.o
objs/src/core/ngx_hash.o
objs/src/core/ngx_buf.o
objs/src/core/ngx_queue.o
objs/src/core/ngx_output_chain.o
objs/src/core/ngx_string.o
objs/src/core/ngx_parse.o
objs/src/core/ngx_inet.o
objs/src/core/ngx_file.o
objs/src/core/ngx_crc32.o
objs/src/core/ngx_murmurhash.o
objs/src/core/ngx_md5.o
objs/src/core/ngx_rbtree.o
objs/src/core/ngx_radix_tree.o
objs/src/core/ngx_slab.o
objs/src/core/ngx_times.o
objs/src/core/ngx_shmtx.o
objs/src/core/ngx_connection.o
objs/src/core/ngx_cycle.o
objs/src/core/ngx_spinlock.o
objs/src/core/ngx_cpuinfo.o
objs/src/core/ngx_conf_file.o
objs/src/core/ngx_resolver.o
objs/src/core/ngx_open_file_cache.o
objs/src/core/ngx_crypt.o
objs/src/event/ngx_event.o
objs/src/event/ngx_event_timer.o
objs/src/event/ngx_event_posted.o
objs/src/event/ngx_event_busy_lock.o
objs/src/event/ngx_event_accept.o
objs/src/event/ngx_event_connect.o
objs/src/event/ngx_event_pipe.o
objs/src/os/unix/ngx_time.o
objs/src/os/unix/ngx_errno.o
objs/src/os/unix/ngx_alloc.o
objs/src/os/unix/ngx_files.o
objs/src/os/unix/ngx_socket.o
objs/src/os/unix/ngx_recv.o
objs/src/os/unix/ngx_readv_chain.o
objs/src/os/unix/ngx_udp_recv.o
objs/src/os/unix/ngx_send.o
objs/src/os/unix/ngx_writev_chain.o
objs/src/os/unix/ngx_channel.o
objs/src/os/unix/ngx_shmem.o
objs/src/os/unix/ngx_process.o
objs/src/os/unix/ngx_daemon.o
objs/src/os/unix/ngx_setproctitle.o
objs/src/os/unix/ngx_posix_init.o
objs/src/os/unix/ngx_user.o
objs/src/os/unix/ngx_process_cycle.o
objs/src/os/unix/ngx_linux_init.o
objs/src/event/modules/ngx_epoll_module.o
objs/src/os/unix/ngx_linux_sendfile_chain.o
objs/src/event/ngx_event_openssl.o
objs/src/core/ngx_regex.o
objs/src/http/ngx_http.o
objs/src/http/ngx_http_core_module.o
objs/src/http/ngx_http_special_response.o
objs/src/http/ngx_http_request.o
objs/src/http/ngx_http_parse.o
objs/src/http/ngx_http_header_filter_module.o
objs/src/http/ngx_http_write_filter_module.o
objs/src/http/ngx_http_copy_filter_module.o
objs/src/http/modules/ngx_http_log_module.o
objs/src/http/ngx_http_request_body.o
objs/src/http/ngx_http_variables.o
objs/src/http/ngx_http_script.o
objs/src/http/ngx_http_upstream.o
objs/src/http/ngx_http_upstream_round_robin.o
objs/src/http/ngx_http_parse_time.o
objs/src/http/modules/ngx_http_static_module.o
objs/src/http/modules/ngx_http_index_module.o
objs/src/http/modules/ngx_http_chunked_filter_module.o
objs/src/http/modules/ngx_http_range_filter_module.o
objs/src/http/modules/ngx_http_headers_filter_module.o
objs/src/http/modules/ngx_http_not_modified_filter_module.o
objs/src/http/ngx_http_busy_lock.o
objs/src/http/ngx_http_file_cache.o
objs/src/http/modules/ngx_http_gzip_filter_module.o
objs/src/http/modules/ngx_http_gzip_static_module.o
objs/src/http/modules/ngx_http_auth_basic_module.o
objs/src/http/modules/ngx_http_access_module.o
objs/src/http/modules/ngx_http_limit_conn_module.o
objs/src/http/modules/ngx_http_limit_req_module.o
objs/src/http/modules/ngx_http_geo_module.o
objs/src/http/modules/ngx_http_map_module.o
objs/src/http/modules/ngx_http_split_clients_module.o
objs/src/http/modules/ngx_http_referer_module.o
objs/src/http/modules/ngx_http_ssl_module.o
objs/src/http/modules/ngx_http_proxy_module.o
objs/src/http/modules/ngx_http_fastcgi_module.o
objs/src/http/modules/ngx_http_uwsgi_module.o
objs/src/http/modules/ngx_http_scgi_module.o
objs/src/http/modules/ngx_http_memcached_module.o
objs/src/http/modules/ngx_http_empty_gif_module.o
objs/src/http/modules/ngx_http_browser_module.o
objs/src/http/modules/ngx_http_upstream_ip_hash_module.o
objs/src/http/modules/ngx_http_upstream_keepalive_module.o
objs/ngx_modules.o
-lpthread -lcrypt -lpcre
/root/openssl/openssl-dev/openssl/.openssl/lib/libssl.a
/root/openssl/openssl-dev/openssl/.openssl/lib/libcrypto.a -ldl -lz
objs/src/core/ngx_resolver.o: In function ngx_udp_connect': /root/trunk/src/core/ngx_resolver.c:2214: undefined reference to__sync_fetch_and_add_4’
objs/src/core/ngx_file.o: In function ngx_next_temp_number': /root/trunk/src/core/ngx_file.c:232: undefined reference to__sync_fetch_and_add_4’
objs/src/core/ngx_times.o: In function ngx_time_sigsafe_update': /root/trunk/src/core/ngx_times.c:193: undefined reference to__sync_bool_compare_and_swap_4’
objs/src/core/ngx_times.o: In function ngx_time_update': /root/trunk/src/core/ngx_times.c:83: undefined reference to__sync_bool_compare_and_swap_4’
objs/src/core/ngx_shmtx.o: In function ngx_shmtx_wakeup': /root/trunk/src/core/ngx_shmtx.c:181: undefined reference to__sync_bool_compare_and_swap_4’
objs/src/core/ngx_shmtx.o: In function ngx_shmtx_trylock': /root/trunk/src/core/ngx_shmtx.c:65: undefined reference to__sync_bool_compare_and_swap_4’
objs/src/core/ngx_shmtx.o: In function ngx_shmtx_lock': /root/trunk/src/core/ngx_shmtx.c:78: undefined reference to__sync_bool_compare_and_swap_4’
objs/src/core/ngx_shmtx.o:/root/trunk/src/core/ngx_shmtx.c:91: more
undefined references to __sync_bool_compare_and_swap_4' follow objs/src/event/ngx_event_accept.o: In functionngx_event_accept’:
/root/trunk/src/event/ngx_event_accept.c:224: undefined reference to
__sync_fetch_and_add_4' objs/src/event/ngx_event_connect.o: In functionngx_event_connect_peer’:
/root/trunk/src/event/ngx_event_connect.c:105: undefined reference to
__sync_fetch_and_add_4' objs/src/http/ngx_http_file_cache.o: In functionngx_http_file_cache_loader’:
/root/trunk/src/http/ngx_http_file_cache.c:1364: undefined reference
to __sync_bool_compare_and_swap_4' collect2: ld returned 1 exit status make[1]: *** [objs/nginx] Error 1 make[1]: Leaving directory/root/trunk’
make: *** [build] Error 2

On Wed, Mar 21, 2012 at 07:16:27PM +1300, Ryan B. wrote:

-march=i386 -mtune=i686’
objs/src/core/ngx_resolver.o: In function ngx_udp_connect': /root/trunk/src/core/ngx_resolver.c:2214: undefined reference to__sync_fetch_and_add_4’
objs/src/core/ngx_file.o: In function ngx_next_temp_number': /root/trunk/src/core/ngx_file.c:232: undefined reference to__sync_fetch_and_add_4’
objs/src/core/ngx_times.o: In function ngx_time_sigsafe_update': /root/trunk/src/core/ngx_times.c:193: undefined reference to__sync_bool_compare_and_swap_4’

i386 CPU does not support atomic operations.
The minimum level is i486. Do you really need “-march=i386” ?


Igor S.