ttyname in gpgme when running Android

Abel Luck abel at
Tue Dec 11 15:29:09 CET 2012

Werner Koch:
> On Tue, 11 Dec 2012 14:31, abel at said:
>> Hi Werner, any updates on making Android avoid the ttyname() codepaths?
> Please disregard my previous mail.  It should work since some time but I
> probably missed to tell you:
> commit 835698b72bc509565aad52b0753f1c56c1a8f062
> Author: Werner Koch <wk at>
> Date:   Tue Nov 20 19:01:13 2012 +0100
>     Do not use a broken ttyname.
>     * (HAVE_BROKEN_TTYNAME): New ac_define set for Android
>     systems.
>     * common/util.h (gnupg_ttyname): New macro.  Change all callers of
>     ttyname to use this macro instead.
>     (ttyname) [W32]: Rename to _gnupg_ttyname and use also if
>     HAVE_BROKEN_TTYNAME is defined.
>     * common/simple-pwquery.c (agent_send_all_options): Keep on using
>     ttyname unless HAVE_BROKEN_TTYNAME is set.  This is because this file
>     may be used standalone.
Yes, I've tested this commit. But it just causes linker errors (as
should be expected):

In function `session_env_getenv_or_default':
undefined reference to `broken_native_ttyname'

On android we want to avoid the ttyname code all together (presumably
like W32 does?).

In gpgme we the REPLACE_TTYNAME magic from gpgme/m4/gnupg-ttyname.m4
needs to be ported to gnupg as well.

> Salam-Shalom,
>    Werner

More information about the Gnupg-devel mailing list