ttyname in gpgme when running Android

Werner Koch wk at gnupg.org
Tue Dec 11 16:08:42 CET 2012


On Tue, 11 Dec 2012 15:29, abel at guardianproject.info said:

> In function `session_env_getenv_or_default':
> ~src/guardian/gnupg-for-android/external/gnupg/common/session-env.c:341:
> undefined reference to `broken_native_ttyname'

I can't see and reference to that symbol.  May it be that there is some
cruft from an older patch?

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

That is what the commit does.  It defines HAVE_BROKEN_TTYNAME and in
util.h we use:

  #if !defined(HAVE_TTYNAME) || defined(HAVE_BROKEN_TTYNAME)
  # define gnupg_ttyname(n) _gnupg_ttyname ((n))
  /* Systems without ttyname (W32) will merely return NULL. */
  static inline char *
  _gnupg_ttyname (int fd)
  {
    (void)fd;
    return NULL;
  }
  #else /*HAVE_TTYNAME*/
  # define gnupg_ttyname(n) ttyname ((n))
  #endif /*HAVE_TTYNAME */

On Windows HAVE_TTYNAME is not defined and on Android
HAVE_BROKEN_TTYNAME is defined.  Thus the macro and the inline function
is used.
  
> In gpgme we the REPLACE_TTYNAME magic from gpgme/m4/gnupg-ttyname.m4
> needs to be ported to gnupg as well.

That was too different from what we use in GnuPG.


Shalom-Salam,

   Werner

-- 
Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.




More information about the Gnupg-devel mailing list