Nginx and libatomic

Igor Sysoev igor at
Sun Dec 6 11:23:19 MSK 2009

On Sun, Dec 06, 2009 at 02:28:50AM -0500, pcdinh wrote:

> I tried to configure nginx 0.8.29 with libatomic 1.2 (manually built and installed) by specifying
> --with-libatomic=/usr/local/lib
> (=> /usr/local/lib/libatomic_ops.a)

In this case you should use just

You should see

checking for atomic_ops library ... found

> OR
> --with-libatomic=../libatomic_ops-1.2
> (=> source code only)
> but nginx shows no information to indicate if that configuration works or not

Yes, now ./configure does not show this, I need to fix it.

> --------------------------------
> checking for OS
>  + Linux 2.6.18-164.el5PAE i686
> checking for C compiler ... found
>  + using GNU C compiler
>  + gcc version: 4.1.2 20080704 (Red Hat 4.1.2-46)
> checking for gcc -pipe switch ... found
> checking for gcc builtin atomic operations ... not found
> checking for gcc variadic macros ... found
> checking for C99 variadic macros ... found

> checking for OpenSSL library ... found
> checking for zlib library ... found
> checking for perl
>  + perl version: v5.8.8 built for i386-linux-thread-multi
>  + perl interpreter multiplicity found
> creating objs/Makefile

> Configuration summary
>   + using PCRE library: /usr/local/src/pcre-8.00
>   + using system OpenSSL library
>   + md5: using OpenSSL library
>   + using sha1 library: auto/lib/sha1
>   + using system zlib library
>   nginx path prefix: "/usr/local/nginx"
>   nginx binary file: "/usr/local/sbin/nginx"
>   nginx configuration prefix: "/usr/local/nginx"
>   nginx configuration file: "/usr/local/nginx/nginx.conf"
>   nginx pid file: "/usr/local/nginx/"
>   nginx error log file: "/usr/local/nginx/logs/error.log"
>   nginx http access log file: "/usr/local/nginx/logs/access.log"
>   nginx http client request body temporary files: "/usr/local/nginx/temp/client_body"
>   nginx http proxy temporary files: "/usr/local/nginx/temp/proxy"
>   nginx http fastcgi temporary files: "/usr/local/nginx/temp/fastcgi"
> The warning "checking for gcc builtin atomic operations ... not found" shows that my default compiler gcc 4.1.2 20080704 does not support atomic operations. I tried to configure CC=gcc44 CXX=g++44 to tell Nginx use newer GCC44 but it seems to ignore it.
> Am I doing wrong here?

The gcc built-in atomic operations on x86 (but not on x86-64) are available
only if -march=-486 or higher is set. You should add either

However, you should not worry about this, since nginx uses own atomic
operations implementation on x86 anyway. As well as on amd64, sparc32/64,
and ppc32/64. gcc atomic support and libatomic are required for other

Igor Sysoev

More information about the nginx mailing list