# general
ac_cv_func_calloc_0_nonnull=${ac_cv_func_calloc_0_nonnull=yes}
ac_cv_func_realloc_works=${ac_cv_func_realloc_works=yes}
ac_cv_func_realloc_0_nonnull=${ac_cv_func_realloc_0_nonnull=yes}
ac_cv_func_malloc_works=${ac_cv_func_malloc_works=yes}
ac_cv_func_malloc_0_nonnull=${ac_cv_func_malloc_0_nonnull=yes}
ac_cv_func_memcmp_working=${ac_cv_func_memcmp_working=yes}
ac_cv_func_getpgrp_void=yes
ac_cv_func_setpgrp_void=yes
ac_cv_func_setgrent_void=yes
ac_cv_func_getgrgid_r=${ac_cv_func_getgrgid_r=yes}
ac_cv_func_getpwuid_r=${ac_cv_func_getpwuid_r=yes}
ac_cv_func_posix_getpwuid_r=${ac_cv_func_posix_getpwuid_r=yes}
ac_cv_func_posix_getgrgid_r=${ac_cv_func_posix_getgrgid_r=yes}
ac_cv_type_uid_t={ac_cv_type_uid_t=yes}
ac_cv_func_getaddrinfo=${ac_cv_func_getaddrinfo=yes}
ac_cv_func_strtod=${ac_cv_func_strtod=yes}

# bash
bash_cv_getcwd_malloc=${bash_cv_getcwd_malloc=yes}

# clamav
clamav_av_func_working_snprintf_long=${clamav_av_func_working_snprintf_long=yes}
clamav_av_have_in_port_t=${clamav_av_have_in_port_t=yes}
clamav_av_have_in_addr_t=${clamav_av_have_in_addr_t=yes}
ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped=yes}

# coreutils
fu_cv_sys_stat_statfs2_bsize=${fu_cv_sys_stat_statfs2_bsize=yes}
gl_cv_func_getcwd_abort_bug=${gl_cv_func_getcwd_abort_bug=no}
gl_cv_func_getcwd_null=${gl_cv_func_getcwd_null=yes}
gl_cv_func_getcwd_path_max=${gl_cv_func_getcwd_path_max=yes}
ac_cv_func_getgroups_works=${ac_cv_func_getgroups_works=yes}
gl_cv_func_nanosleep=${gl_cv_func_nanosleep='no (mishandles large arguments)'}
gl_cv_func_working_mkstemp=${gl_cv_func_working_mkstemp=yes}
gl_cv_func_working_mktime=${gl_cv_func_working_mktime=yes}
gl_cv_func_working_utimes=${gl_cv_func_working_utimes=yes}

#dbus-glib
ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=yes}

# gnucash
am_cv_scanf_lld=${am_cv_scanf_lld=yes}

# guile
ac_cv_func_pthread_attr_getstack=${ac_cv_func_pthread_attr_getstack=yes}

#gcc-zlib
ac_cv_func_getpagesize=${ac_cv_func_getpagesize=yes}
ac_cv_func_memcpy=${ac_cv_func_memcpy=yes}
ac_cv_func_strerror=${ac_cv_func_strerror=yes}

# squid
ac_cv_af_unix_large_dgram=${ac_cv_af_unix_large_dgram=yes}
ac_cv_func_setresuid=${ac_cv_func_setresuid=yes}
ac_cv_func_va_copy=${ac_cv_func_va_copy=yes}
ac_cv_func___va_copy=${ac_cv_func___va_copy=yes}
ac_cv_epoll_works=${ac_cv_epoll_works=yes}

ac_cv_check_sjlj=ssjlj

# m4
gt_cv_locale_fr=${gt_cv_locale_fr=fr_FR}
gl_cv_func_btowc_eof=${gl_cv_func_btowc_eof=yes}
gl_cv_func_wcrtomb_retval=${gl_cv_func_wcrtomb_retval=yes}
gl_cv_func_wctob_works=${gl_cv_func_wctob_works=yes}
gl_cv_func_mbrtowc_incomplete_state=${gl_cv_func_mbrtowc_incomplete_state=yes}
gl_cv_func_mbrtowc_sanitycheck=${gl_cv_func_mbrtowc_sanitycheck=yes}
gl_cv_func_mbrtowc_null_arg=${gl_cv_func_mbrtowc_null_arg=yes}
gl_cv_func_mbrtowc_retval=${gl_cv_func_mbrtowc_retval=yes}
gl_cv_func_mbrtowc_nul_retval=${gl_cv_func_mbrtowc_nul_retval=yes}

# va_copy and _va_copy
ac_cv_va_copy=${ac_cv_va_copy=yes}
ac_cv___va_copy=${ac_cv___va_copy=yes}
ac_cv_func_va_copy=${ac_cv_func_va_copy=yes}
ac_cv_func___va_copy=${ac_cv_func___va_copy=yes}

# Xorg
xorg_cv_malloc0_returns_null=${xorg_cv_malloc0_returns_null=yes}
