Subject: Re: bug#17773: AIX build errors with coreutils-8.22

From: Pádraig Brady <[email-masked]>
Date: Fri, 13 Jun 2014 18:29:16 +0100

On 06/13/2014 04:48 PM, Paul Eggert wrote:
> Pádraig Brady wrote:

>> Paul I see in the threadlib module, the addition of _REENTRANT
>> or _THREAD_SAFE defines on some platforms.
>> Should we be doing that also in the pthread module?
> 
> We do have a problem here.  Won't defining _THREAD_SAFE run into problems when combined with unlocked-io on AIX?
> 
> To be honest, the unlocked-io stuff seems so quaint now.  How much does it really help performance?  Perhaps we should retire it, or turn it into a no-op?

Well it had a large impact when I last checked (a long time ago now),
due to avoiding the function call per character as well as the locking.

The unlocked-io module does undermine any IO protections enabled with the
_REENTRANT or _THREAD_SAFE macros, but that's no different to what happens
now with threadlib, and is essentially the "unlocked-io trumps threads"
assumption you made in the last gnulib regex fix.

So I'd be inclined to add those definitions in the pthread module,
but if not we could define at the top of sort.c at least?
I'm remembering these macros also protecting access to errno
on Solaris, and I see that concurrent sets/gets of errno are
done in xstrxfrm() in sort.

cheers,
Pádraig.