# gettext - these add sleep delays otherwise
gl_cv_func_sleep_works=${gl_cv_func_sleep_works=yes}
gl_cv_header_working_fcntl_h=${gl_cv_header_working_fcntl_h=yes}
# the euc-jp tests in iconv.m4 break elfutils and libunistring depending on the
# host locales installed. Avoid this by skipping the tests, we're not on HP-UX!
am_cv_func_iconv_works=${am_cv_func_iconv_works=yes}

# apr
ac_cv_file__dev_zero=${ac_cv_file__dev_zero=yes}
ac_cv_sizeof_pid_t=${ac_cv_sizeof_pid_t=4}
ac_cv_func_pthread_key_delete=${ac_cv_func_pthread_key_delete=yes}
apr_cv_tcp_nodelay_with_cork=${apr_cv_tcp_nodelay_with_cork=yes}
apr_cv_process_shared_works=${apr_cv_process_shared_works=no}

# samba
samba_cv_HAVE_IFACE_AIX=${samba_cv_HAVE_IFACE_AIX=no}
samba_cv_HAVE_IFACE_IFCONF=${samba_cv_HAVE_IFACE_IFCONF=yes}
samba_cv_HAVE_IFACE_IFREQ=${samba_cv_HAVE_IFACE_IFREQ=yes}
samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=${samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no}

# db
db_cv_path_ar=${db_cv_path_ar=/usr/bin/ar}
db_cv_path_chmod=${db_cv_path_chmod=/bin/chmod}
db_cv_path_cp=${db_cv_path_cp=/bin/cp}
db_cv_path_ln=${db_cv_path_ln=/bin/ln}
db_cv_path_mkdir=${db_cv_path_mkdir=/bin/mkdir}
db_cv_path_ranlib=${db_cv_path_ranlib=/usr/bin/ranlib}
db_cv_path_rm=${db_cv_path_rm=/bin/rm}
db_cv_path_sh=${db_cv_path_sh=/bin/sh}
db_cv_path_strip=${db_cv_path_strip=/usr/bin/strip}

# bash
bash_cv_have_mbstate_t=${bash_cv_have_mbstate_t=yes}
bash_cv_must_reinstall_sighandlers=${bash_cv_must_reinstall_sighandlers=no}
bash_cv_func_strcoll_broken=${bash_cv_func_strcoll_broken=no}
bash_cv_dup2_broken=${bash_cv_dup2_broken=no}
bash_cv_opendir_not_robust=${bash_cv_opendir_not_robust=no}
bash_cv_type_rlimit=${bash_cv_type_rlimit=rlim_t}
bash_cv_getenv_redef=${bash_cv_getenv_redef=yes}
bash_cv_ulimit_maxfds=${bash_cv_ulimit_maxfds=yes}
bash_cv_getcwd_calls_popen=${bash_cv_getcwd_calls_popen=no}
bash_cv_printf_a_format=${bash_cv_printf_a_format=yes}
bash_cv_pgrp_pipe=${bash_cv_pgrp_pipe=no}
bash_cv_job_control_missing=${bash_cv_job_control_missing=present}
bash_cv_sys_named_pipes=${bash_cv_sys_named_pipes=present}
bash_cv_unusable_rtsigs=${bash_cv_unusable_rtsigs=no}

# ccache
hw_cv_func_snprintf_c99=${hw_cv_func_snprintf_c99=yes}
hw_cv_func_vsnprintf_c99=${hw_cv_func_vsnprintf_c99=yes}

# coreutils
ac_cv_func_chown_works=${ac_cv_func_chown_works=yes}
ac_cv_func_utime_null=${ac_cv_func_utime_null=yes}
gl_cv_func_fstatat_zero_flag=${gl_cv_func_fstatat_zero_flag=yes}
gl_cv_func_link_follows_symlink=${gl_cv_func_link_follows_symlink=no}
gl_cv_func_unlink_busy_text=${gl_cv_func_unlink_busy_text=yes}
gl_cv_have_proc_uptime=${gl_cv_have_proc_uptime=yes}
gl_cv_pipes_are_fifos=${gl_cv_pipes_are_fifos='yes (1)'}

# mysql
ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls=yes}
ac_cv_conv_longlong_to_float=${ac_cv_conv_longlong_to_float=yes}

# TCL
tcl_cv_api_serial=${tcl_cv_api_serial=termios}

# python
ac_cv_have_long_long_format=yes

# apache
ac_cv_o_nonblock_inherited=${ac_cv_o_nonblock_inherited=no}

# rsync
rsync_cv_HAVE_C99_VSNPRINTF=${rsync_cv_HAVE_C99_VSNPRINTF=yes}
