Configure determina a resposta a certas perguntas compilando e executando programas on the fly ... o que pode (normalmente) fazer quando o host de compilação é o mesmo que o host de destino.
Quando você está compilando em cruz, (normalmente) sua máquina de compilação não pode executar os binários produzidos pelo compilador cruzado.
Para superar isso, localize onde o teste está no script de configuração e, se tiver sorte, o script de configuração permitirá o armazenamento em cache do resultado do teste ... você pode usá-lo para enganar o script de configuração. que já sabe a resposta para a pergunta e, portanto, não tentará compilar e executar o binário.
Por exemplo, se você estava tentando fazer a compilação cruzada do openldap 2.3.11 (uma versão antiga, eu sei), talvez seja necessário passar no ambiente a variável ac_cv_func_memcmp_working=yes
(ou eu acho que você pode chamar o configure com este configuração na linha de comando, por exemplo, ./configure ac_cv_func_memcmp_working=yes --prefix=...
).
O código no script configure se parece com isso (é uma versão mais antiga do autoconf, então o código será diferente em scripts de configuração mais novos, mas o conceito não mudou) ...
echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6
if test "${ac_cv_func_memcmp_working+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
ac_cv_func_memcmp_working=no
else
...
Você pode ver no código acima que o script de configuração faz uma suposição (incorreta, no meu caso) sobre a máquina de destino se achar que você está fazendo uma compilação cruzada.
Se você não pode contornar isso usando este truque (respostas em cache), você terá que fornecer uma solução alternativa de alguma outra forma ... o objetivo é enganar o script de configuração para que ele seja executado em todo o caminho.