# 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}

# 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
gl_cv_func_fstatat_zero_flag=${gl_cv_func_fstatat_zero_flag=yes}

# 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}
