mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-01 21:23:51 -09:00
The workaround in3d06661fc1for the broken C23 check was incorrect: When overriding ac_cv_prog_cc_c23 the value must either be "no" (to indicate that C23 is not supported) or contain the command line parameters to enable C23 with the C compiler in use (e.g. "-std=gnu23", may be an empty string if appropriate). The workaround set it to "yes" for host GCC >= 14, making builds fail. However, the original issue was that apr may try to enable C23 in host CC calls if the target CC supports it. So instead of figuring out the correct arguments for GCC >= 14, we can set ac_cv_prog_cc_c23=no only for host GCC <= 13 and leave it unset otherwise, as in that case enabling C23 will do no harm. Fixes:3d06661fc1Fixes: - https://autobuild.buildroot.net/results/77c/77cd5456169e04c2f92dc328c4b6828513d1195f/ - https://autobuild.buildroot.net/results/7a4/7a4fb2b21027f98df607871d9fe0dd234d44aebb/ - https://autobuild.buildroot.net/results/a6c/a6cef4c5965fdeb40d3b39cbd40941329f4fc1c8/ (and more) Tested-by: Bernd Kuhls <bernd@kuhls.net> Signed-off-by: Fiona Klute <fiona.klute@gmx.de> Signed-off-by: Romain Naour <romain.naour@smile.fr>
101 lines
2.9 KiB
Makefile
101 lines
2.9 KiB
Makefile
################################################################################
|
|
#
|
|
# apr
|
|
#
|
|
################################################################################
|
|
|
|
APR_VERSION = 1.7.6
|
|
APR_SOURCE = apr-$(APR_VERSION).tar.bz2
|
|
APR_SITE = https://archive.apache.org/dist/apr
|
|
APR_LICENSE = Apache-2.0
|
|
APR_LICENSE_FILES = LICENSE
|
|
APR_CPE_ID_VENDOR = apache
|
|
APR_CPE_ID_PRODUCT = portable_runtime
|
|
APR_INSTALL_STAGING = YES
|
|
# We have a patch touching configure.in and Makefile.in,
|
|
# so we need to autoreconf:
|
|
APR_AUTORECONF = YES
|
|
|
|
APR_CONF_OPTS = --disable-sctp
|
|
|
|
# avoid apr_hints.m4 by setting apr_preload_done=yes and set
|
|
# the needed CFLAGS on our own (avoids '-D_REENTRANT' in case
|
|
# not supported by toolchain and subsequent configure failure)
|
|
APR_CFLAGS = $(TARGET_CFLAGS) -DLINUX -D_GNU_SOURCE
|
|
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
|
|
APR_CFLAGS += -D_REENTRANT
|
|
endif
|
|
|
|
APR_CONF_ENV = \
|
|
CC_FOR_BUILD="$(HOSTCC)" \
|
|
CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
|
|
CFLAGS="$(APR_CFLAGS)" \
|
|
ac_cv_file__dev_zero=yes \
|
|
ac_cv_mmap__dev_zero=yes \
|
|
ac_cv_func_setpgrp_void=yes \
|
|
apr_cv_process_shared_works=yes \
|
|
apr_cv_mutex_robust_shared=no \
|
|
apr_cv_tcp_nodelay_with_cork=yes \
|
|
ac_cv_sizeof_struct_iovec=8 \
|
|
ac_cv_sizeof_pid_t=4 \
|
|
ac_cv_struct_rlimit=yes \
|
|
ac_cv_strerror_r_rc_int=$(if $(BR2_TOOLCHAIN_USES_MUSL),yes,no) \
|
|
ac_cv_o_nonblock_inherited=no \
|
|
apr_cv_mutex_recursive=yes \
|
|
apr_cv_epoll=yes \
|
|
apr_cv_epoll_create1=yes \
|
|
apr_cv_dup3=yes \
|
|
apr_cv_sock_cloexec=yes \
|
|
apr_cv_accept4=yes \
|
|
apr_preload_done=yes
|
|
APR_CONFIG_SCRIPTS = apr-1-config
|
|
|
|
ifeq ($(BR2_HOST_GCC_AT_LEAST_14),)
|
|
APR_CONF_ENV += ac_cv_prog_cc_c23=no
|
|
endif
|
|
|
|
# Doesn't even try to guess when cross compiling
|
|
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
|
|
APR_CONF_ENV += apr_cv_pthreads_lib="-lpthread"
|
|
endif
|
|
|
|
# Fix lfs detection when cross compiling
|
|
APR_CONF_ENV += apr_cv_use_lfs64=yes
|
|
|
|
# Use non-portable atomics when available. 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_TOOLCHAIN_HAS_SYNC_8),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_LIBXCRYPT),y)
|
|
APR_DEPENDENCIES += libxcrypt
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y)
|
|
APR_DEPENDENCIES += util-linux
|
|
endif
|
|
|
|
define APR_CLEANUP_UNNEEDED_FILES
|
|
$(RM) -rf $(TARGET_DIR)/usr/build-1/
|
|
endef
|
|
|
|
APR_POST_INSTALL_TARGET_HOOKS += APR_CLEANUP_UNNEEDED_FILES
|
|
|
|
define APR_FIXUP_RULES_MK
|
|
$(SED) 's%apr_builddir=%apr_builddir=$(STAGING_DIR)%' \
|
|
$(STAGING_DIR)/usr/build-1/apr_rules.mk
|
|
$(SED) 's%apr_builders=%apr_builders=$(STAGING_DIR)%' \
|
|
$(STAGING_DIR)/usr/build-1/apr_rules.mk
|
|
$(SED) 's%top_builddir=%top_builddir=$(STAGING_DIR)%' \
|
|
$(STAGING_DIR)/usr/build-1/apr_rules.mk
|
|
endef
|
|
|
|
APR_POST_INSTALL_STAGING_HOOKS += APR_FIXUP_RULES_MK
|
|
|
|
$(eval $(autotools-package))
|