Subject: bug#6627: closed (bug#6627: Build failure when pthread.hisn’t available)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 14 Jul 2010 16:15:03 +0000

Your bug report

#6627: Build failure when pthread.h isn’t available

which was filed against the coreutils package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
6627: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6627
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: bug#6627: Build failure when pthread.h isn’t available
From: Pádraig Brady <[email-masked]>
To: Ludovic Courtès <[email-masked]>
Cc: [email-masked]
Date: Wed, 14 Jul 2010 17:13:19 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: ludo <at> gnu.org (Ludovic Courtès)
> Date: Tue, 13 Jul 2010 18:16:30 +0200
>
> Hello,
> Coreutils fails to build when <pthread.h> isn’t available:

Thanks Ludo, I thought the fixed version would have built
before you noticed. I'll CC you the next time.
http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commit;h=7f2ece89

cheers,
Pádraig.

p.s. I responding manually after I noticed the message
in the bug tracker, but not on the mailing list after 1 hour

Subject: Build failure when pthread.h isn’t available
From: [email-masked] (Ludovic Courtès)
To: [email-masked]
Date: Tue, 13 Jul 2010 18:16:30 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

Coreutils fails to build when <pthread.h> isn’t available:

--8<---------------cut here---------------start------------->8---
checking for pthread.h... no

[...]

make[2]: Entering directory `/tmp/nix-build-4w3pinfgcmz2majy85flyx53gp10wgvb-coreutils-8.5.89-9face-dirty-i586-pc-gnu.drv-0/coreutils-8.5.89-9face-dirty/lib'

[...]

ln -f pthread.in.h pthread.h || cp pthread.in.h pthread.h

[...]

i586-pc-gnu-gcc -std=gnu99  -I. -I../lib  -I../lib    -g -O2 -c sort.c
sort.c:236:3: error: expected specifier-qualifier-list before 'pthread_spinlock_t'
sort.c:243:3: error: expected specifier-qualifier-list before 'pthread_mutex_t'
sort.c: In function 'lock_node':
sort.c:3144:3: warning: implicit declaration of function 'pthread_spin_lock'

[...]
--8<---------------cut here---------------end--------------->8---

(From <http://hydra.nixos.org/build/484742>.)

This is because the Gnulib replacement doesn’t cover all the pthread API
that’s actually used.

A simple fix would be to enclose all the pthread-related code in
HAVE_PTHREAD_H and not use the Gnulib replacement.

BTW, why didn’t you choose OpenMP?  It may have made things easier.

Thanks,
Ludo’.