npth finds pthread_mutex_timedlock() which android does not have
Hans-Christoph Steiner
hans at guardianproject.info
Tue Feb 28 18:44:16 CET 2012
On 02/28/2012 11:32 AM, Marcus Brinkmann wrote:
> On 02/20/2012 11:16 PM, Hans-Christoph Steiner wrote:
>
>> Turns out there is another issue with npth on Android. npth_yield is a
>> macro for pthread_yield, which Android does not seem to have. I cannot
>> find another confirmation of this besides pthread_yield() not being any
>> headers.
>
> While I find the disregard for standard compliance in Android deeply
> disturbing, in this case the right fix is to remove npth_yield entirely
> (which should have been a function anyway, as it needs to release the
> global lock temporarily). yield is considered harmful, and I changed
> the only place where it is called in gnupg with a sleep (well, there are
> some more calls in the windows CE port which will eventually be taken
> care of).
>
> npth: c30634abebb287f56a6a2480b4bbd2ffc166dd4d
> gnupg: 8f8c6594147608b1021c16fc3561feb96da5d55a
That's great, I'll try a build right now. I also noticed that you
committing some changes to make pthread_rwlock* optional. Do you think
that will ultimately apply to dirmngr as well?
As for Android's standard compliant, it is a bummer. I find it useful
to understand their view on the native side of things when thinking
about this stuff. First off, Android isn't UNIX, its a new thing with a
Linux kernel and some UNIXish stuff (for example, most stuff is in
/system). Then, the original intention is that developers would only
ever work in Java, and they do provide a complete and
standards-compliant Java SDK. It is only because of large developer
demand have they been convinced to open up the underlying C layers for
general development, so now are starting to catch up with standard
compliance there.
.hc
More information about the Gnupg-devel
mailing list