diff --git a/package/apache/apache.mk b/package/apache/apache.mk index 8e7b6be40d..e752fcc6c5 100644 --- a/package/apache/apache.mk +++ b/package/apache/apache.mk @@ -35,10 +35,6 @@ APACHE_CONF_OPTS = \ --disable-lua \ --disable-luajit -ifeq ($(BR2_ARCH_HAS_ATOMICS),y) -APACHE_CONF_OPTS += --enable-nonportable-atomics=yes -endif - ifeq ($(BR2_PACKAGE_LIBXML2),y) APACHE_DEPENDENCIES += libxml2 # Apache wants the path to the header file, where it can find diff --git a/package/apr/apr.mk b/package/apr/apr.mk index 0fed19c54d..361a79f99b 100644 --- a/package/apr/apr.mk +++ b/package/apr/apr.mk @@ -35,6 +35,21 @@ endif # Fix lfs detection when cross compiling APR_CONF_ENV += apr_cv_use_lfs64=yes +# Use non-portable atomics when available: 8 bytes atomics are used on +# 64-bits architectures, 4 bytes atomics on 32-bits architectures. We +# have to override ap_cv_atomic_builtins because the test used to +# check for atomic builtins uses AC_TRY_RUN, which doesn't work when +# cross-compiling. +ifeq ($(BR2_ARCH_IS_64):$(BR2_TOOLCHAIN_HAS_SYNC_8),y:y) +APR_CONF_OPTS += --enable-nonportable-atomics +APR_CONF_ENV += ap_cv_atomic_builtins=yes +else ifeq ($(BR2_ARCH_IS_64):$(BR2_TOOLCHAIN_HAS_SYNC_4),:y) +APR_CONF_OPTS += --enable-nonportable-atomics +APR_CONF_ENV += ap_cv_atomic_builtins=yes +else +APR_CONF_OPTS += --disable-nonportable-atomics +endif + ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) APR_DEPENDENCIES += util-linux endif