Lembre-se que make check
em glib vem em último. make check
depende do desktop-file-utils-0.20, que por sua vez depende de um glib instalado, portanto, deve-se assegurar que os utilitários desktop-file estejam instalados, funcionando e em uma versão correta antes de executar make check
. A maneira canônica seria instalar primeiro o novo glibc, depois o desktop-file-utils e, no final, fazer make check
.
Em geral, um erro durante a verificação é um motivo para se preocupar, pelo menos em um ambiente profissional. A falha de um teste pode significar que alguma condição em particular pode colocar o sistema de joelhos, mesmo que o sistema funcione bem 99,99% do tempo.
Neste caso particular, você pode olhar diretamente para o código-fonte do glib para entender o que está acontecendo. Aqui está a função relevante:
/* test that thread creation fails as expected,
* by setting RLIMIT_NPROC ridiculously low
*/
static void
test_thread4 (void)
{
#ifdef HAVE_PRLIMIT
struct rlimit ol, nl;
GThread *thread;
GError *error;
gint ret;
getrlimit (RLIMIT_NPROC, &nl);
nl.rlim_cur = 1;
if ((ret = prlimit (getpid(), RLIMIT_NPROC, &nl, &ol)) != 0)
g_error ("prlimit failed: %s\n", g_strerror (ret));
error = NULL;
thread = g_thread_try_new ("a", thread1_func, NULL, &error);
g_assert (thread == NULL);
g_assert_error (error, G_THREAD_ERROR, G_THREAD_ERROR_AGAIN);
g_error_free (error);
if ((ret = prlimit (getpid (), RLIMIT_NPROC, &ol, NULL)) != 0)
g_error ("resetting RLIMIT_NPROC failed: %s\n", g_strerror (ret));
#endif
}
O erro ocorre na linha
g_assert( thread == NULL ) ;
A função de teste altera o RLIMIT_PROC para um valor de 1 ( nl.rlim_cur=1
, o que limita o número de threads que o processo atual pode ter). Com essa configuração, a criação de um novo thread ( g_thread_try_new()
call) deve falhar e retornar NULL
. Por alguma razão, isso não acontece.
Existe um bug na suíte de testes, ou um problema com a glibc, ou houve um problema ao construir corretamente a glibc. Em qualquer caso, os valores de retorno incorretos das chamadas da biblioteca de gerenciamento de threads me deixariam muito nervoso.