package/nginx: add libatomic_ops support
authorMartin Bark <martin@barkynet.com>
Mon, 9 May 2016 11:29:03 +0000 (12:29 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 13 May 2016 21:21:14 +0000 (23:21 +0200)
Force the use of libatomics_ops on the sparc v8 and leon3 platforms to
allow nginx to build.  Optionally use libatomic_ops on other platforms.

This fixes:
 http://autobuild.buildroot.net/results/20dc41cd62887222d2569d81b5865893baeafaae/
 http://autobuild.buildroot.net/results/eb47af0c8df6fae82859865fb8b9912f45960444/

Cc: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Martin Bark <martin@barkynet.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/nginx/Config.in
package/nginx/nginx.mk

index 9f3c218daeb539d95c049ab760473b948204b90b..e6f2d96d34633ce6cdd48e9a9f0d5964f5e7da83 100644 (file)
@@ -1,6 +1,7 @@
 menuconfig BR2_PACKAGE_NGINX
        bool "nginx"
        depends on BR2_USE_MMU # fork()
+       select BR2_PACKAGE_LIBATOMIC_OPS if BR2_sparc_v8 || BR2_sparc_leon3
        help
          nginx is an HTTP and reverse proxy server, as well as a mail proxy
          server.
index 9cc2326ade9865a4aff8454913b3babd6b2d8fb1..fecef7b8f733f83c25cf700051789a1bfc9e8705 100644 (file)
@@ -14,7 +14,6 @@ NGINX_CONF_OPTS = \
        --crossbuild=Linux::$(BR2_ARCH) \
        --with-cc="$(TARGET_CC)" \
        --with-cpp="$(TARGET_CC)" \
-       --with-cc-opt="$(TARGET_CFLAGS)" \
        --with-ld-opt="$(TARGET_LDFLAGS)" \
        --with-ipv6
 
@@ -36,7 +35,6 @@ NGINX_CONF_ENV += \
        ngx_force_c99_have_variadic_macros=yes \
        ngx_force_gcc_have_variadic_macros=yes \
        ngx_force_gcc_have_atomic=yes \
-       ngx_force_have_libatomic=no \
        ngx_force_have_epoll=yes \
        ngx_force_have_sendfile=yes \
        ngx_force_have_sendfile64=yes \
@@ -68,6 +66,17 @@ NGINX_CONF_OPTS += \
        $(if $(BR2_PACKAGE_NGINX_FILE_AIO),--with-file-aio) \
        $(if $(BR2_PACKAGE_NGINX_THREADS),--with-threads)
 
+ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y)
+NGINX_DEPENDENCIES += libatomic_ops
+NGINX_CONF_OPTS += --with-libatomic
+NGINX_CONF_ENV += ngx_force_have_libatomic=yes
+ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y)
+NGINX_CFLAGS += "-DAO_NO_SPARC_V9"
+endif
+else
+NGINX_CONF_ENV += ngx_force_have_libatomic=no
+endif
+
 ifeq ($(BR2_PACKAGE_PCRE),y)
 NGINX_DEPENDENCIES += pcre
 NGINX_CONF_OPTS += --with-pcre
@@ -238,7 +247,8 @@ define NGINX_CONFIGURE_CMDS
        cd $(@D) ; $(NGINX_CONF_ENV) \
                PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
                GDLIB_CONFIG=$(STAGING_DIR)/usr/bin/gdlib-config \
-               ./configure $(NGINX_CONF_OPTS)
+               ./configure $(NGINX_CONF_OPTS) \
+                       --with-cc-opt="$(TARGET_CFLAGS) $(NGINX_CFLAGS)"
 endef
 
 define NGINX_BUILD_CMDS