qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1785698] [NEW] Solaris build error: unknown type name


From: Michele Denber
Subject: [Qemu-devel] [Bug 1785698] [NEW] Solaris build error: unknown type name ‘gcry_error_t’
Date: Mon, 06 Aug 2018 19:41:24 -0000

Public bug reported:

Building qemu 2.12.0 on a Sun Oracle Enterprise M3000 SPARC64 VII,
opencsw toolchain and gcc 7.3.0, gmake fails with a bunch of related
errors all in cypher-gcrypt.c:

/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:262:32: error: 
‘gcry_cipher_hd_t’ undeclared (first use in this function); did you mean 
‘gcry_cipher_info’?
     err = gcry_cipher_encrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);                                ^~~~~~~~~~~~~~~~
                                gcry_cipher_info
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:262:49: error: expected 
‘)’ before ‘ctx’
     err = gcry_cipher_encrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);                                                 ^~~
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:262:11: error: too few 
arguments to function ‘gcry_cipher_encrypt’
     err = gcry_cipher_encrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);           ^~~~~~~~~~~~~~~~~~~
In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:25:0,
                 from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
/usr/include/gcrypt.h:566:5: note: declared here
 int gcry_cipher_encrypt (GcryCipherHd h,
     ^~~~~~~~~~~~~~~~~~~
In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c: In function 
‘qcrypto_gcrypt_xts_decrypt’:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:271:5: error: unknown 
type name ‘gcry_error_t’; did you mean ‘g_error’?
     gcry_error_t err;
     ^~~~~~~~~~~~
     g_error
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:272:32: error: 
‘gcry_cipher_hd_t’ undeclared (first use in this function); did you mean 
‘gcry_cipher_info’?
     err = gcry_cipher_decrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);                                ^~~~~~~~~~~~~~~~
                                gcry_cipher_info
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:272:49: error: expected 
‘)’ before ‘ctx’
     err = gcry_cipher_decrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);                                                 ^~~
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:272:11: error: too few 
arguments to function ‘gcry_cipher_decrypt’
     err = gcry_cipher_decrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);           ^~~~~~~~~~~~~~~~~~~
In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:25:0,
                 from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
/usr/include/gcrypt.h:571:5: note: declared here
 int gcry_cipher_decrypt (GcryCipherHd h,
     ^~~~~~~~~~~~~~~~~~~
In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c: In function 
‘qcrypto_gcrypt_cipher_encrypt’:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:284:5: error: unknown 
type name ‘gcry_error_t’; did you mean ‘g_error’?
     gcry_error_t err;
     ^~~~~~~~~~~~
     g_error
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:293:21: warning: passing 
argument 1 of ‘xts_encrypt’ makes pointer from integer without a cast 
[-Wint-conversion]
         xts_encrypt(ctx->handle, ctx->tweakhandle,
                     ^~~
In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:22:0,
                 from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
/export/home/denber/qemu-2.12.0/include/crypto/xts.h:73:6: note: expected 
‘const void *’ but argument is of type ‘int’
 void xts_encrypt(const void *datactx,
      ^~~~~~~~~~~
In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:293:34: warning: passing 
argument 2 of ‘xts_encrypt’ makes pointer from integer without a cast 
[-Wint-conversion]
         xts_encrypt(ctx->handle, ctx->tweakhandle,
                                  ^~~
In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:22:0,
                 from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
/export/home/denber/qemu-2.12.0/include/crypto/xts.h:73:6: note: expected 
‘const void *’ but argument is of type ‘int’
 void xts_encrypt(const void *datactx,
      ^~~~~~~~~~~
In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:298:35: warning: passing 
argument 1 of ‘gcry_cipher_encrypt’ makes pointer from integer without a cast 
[-Wint-conversion]
         err = gcry_cipher_encrypt(ctx->handle,
                                   ^~~
In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:25:0,
                 from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
/usr/include/gcrypt.h:566:5: note: expected ‘GcryCipherHd {aka struct 
gcry_cipher_handle *}’ but argument is of type ‘int’
 int gcry_cipher_encrypt (GcryCipherHd h,
     ^~~~~~~~~~~~~~~~~~~
In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c: In function 
‘qcrypto_gcrypt_cipher_decrypt’:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:320:5: error: unknown 
type name ‘gcry_error_t’; did you mean ‘g_error’?
     gcry_error_t err;
     ^~~~~~~~~~~~
     g_error
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:329:21: warning: passing 
argument 1 of ‘xts_decrypt’ makes pointer from integer without a cast 
[-Wint-conversion]
         xts_decrypt(ctx->handle, ctx->tweakhandle,
                     ^~~
In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:22:0,
                 from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
/export/home/denber/qemu-2.12.0/include/crypto/xts.h:51:6: note: expected 
‘const void *’ but argument is of type ‘int’
 void xts_decrypt(const void *datactx,
      ^~~~~~~~~~~
In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:329:34: warning: passing 
argument 2 of ‘xts_decrypt’ makes pointer from integer without a cast 
[-Wint-conversion]
         xts_decrypt(ctx->handle, ctx->tweakhandle,
                                  ^~~
In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:22:0,
                 from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
/export/home/denber/qemu-2.12.0/include/crypto/xts.h:51:6: note: expected 
‘const void *’ but argument is of type ‘int’
 void xts_decrypt(const void *datactx,
      ^~~~~~~~~~~
In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:334:35: warning: passing 
argument 1 of ‘gcry_cipher_decrypt’ makes pointer from integer without a cast 
[-Wint-conversion]
         err = gcry_cipher_decrypt(ctx->handle,
                                   ^~~
In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:25:0,
                 from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
/usr/include/gcrypt.h:571:5: note: expected ‘GcryCipherHd {aka struct 
gcry_cipher_handle *}’ but argument is of type ‘int’
 int gcry_cipher_decrypt (GcryCipherHd h,
     ^~~~~~~~~~~~~~~~~~~
In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c: In function 
‘qcrypto_gcrypt_cipher_setiv’:
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:353:5: error: unknown 
type name ‘gcry_error_t’; did you mean ‘g_error’?
     gcry_error_t err;
     ^~~~~~~~~~~~
     g_error
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:365:19: warning: 
implicit declaration of function ‘gcry_cipher_setctr’; did you mean 
‘gcry_cipher_setiv’? [-Wimplicit-function-declaration]
             err = gcry_cipher_setctr(ctx->handle, iv, niv);
                   ^~~~~~~~~~~~~~~~~~
                   gcry_cipher_setiv
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:365:19: warning: nested 
extern declaration of ‘gcry_cipher_setctr’ [-Wnested-externs]
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:372:13: warning: 
implicit declaration of function ‘gcry_cipher_reset’; did you mean 
‘gcry_cipher_close’? [-Wimplicit-function-declaration]
             gcry_cipher_reset(ctx->handle);
             ^~~~~~~~~~~~~~~~~
             gcry_cipher_close
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:372:13: warning: nested 
extern declaration of ‘gcry_cipher_reset’ [-Wnested-externs]
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:373:19: warning: passing 
argument 1 of ‘gcry_cipher_ctl’ makes pointer from integer without a cast 
[-Wint-conversion]
             err = gcry_cipher_setiv(ctx->handle, iv, niv);
                   ^~~~~~~~~~~~~~~~~
In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:25:0,
                 from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
/usr/include/gcrypt.h:540:5: note: expected ‘GcryCipherHd {aka struct 
gcry_cipher_handle *}’ but argument is of type ‘int’
 int gcry_cipher_ctl( GcryCipherHd h, int cmd, void *buffer, size_t buflen);
     ^~~~~~~~~~~~~~~
gmake: *** [/export/home/denber/qemu-2.12.0/rules.mak:67: crypto/cipher.o] 
Error 1

---------------------------------------------------------------------

I do have libgcrypt, libgcrypt_dev, and libgcrypt_utils installed from
opencsw.

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1785698

Title:
  Solaris build error: unknown type name ‘gcry_error_t’

Status in QEMU:
  New

Bug description:
  Building qemu 2.12.0 on a Sun Oracle Enterprise M3000 SPARC64 VII,
  opencsw toolchain and gcc 7.3.0, gmake fails with a bunch of related
  errors all in cypher-gcrypt.c:

  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:262:32: error: 
‘gcry_cipher_hd_t’ undeclared (first use in this function); did you mean 
‘gcry_cipher_info’?
       err = gcry_cipher_encrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);                                ^~~~~~~~~~~~~~~~
                                  gcry_cipher_info
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:262:49: error: 
expected ‘)’ before ‘ctx’
       err = gcry_cipher_encrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);                                                 ^~~
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:262:11: error: too few 
arguments to function ‘gcry_cipher_encrypt’
       err = gcry_cipher_encrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);           ^~~~~~~~~~~~~~~~~~~
  In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:25:0,
                   from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
  /usr/include/gcrypt.h:566:5: note: declared here
   int gcry_cipher_encrypt (GcryCipherHd h,
       ^~~~~~~~~~~~~~~~~~~
  In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c: In function 
‘qcrypto_gcrypt_xts_decrypt’:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:271:5: error: unknown 
type name ‘gcry_error_t’; did you mean ‘g_error’?
       gcry_error_t err;
       ^~~~~~~~~~~~
       g_error
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:272:32: error: 
‘gcry_cipher_hd_t’ undeclared (first use in this function); did you mean 
‘gcry_cipher_info’?
       err = gcry_cipher_decrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);                                ^~~~~~~~~~~~~~~~
                                  gcry_cipher_info
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:272:49: error: 
expected ‘)’ before ‘ctx’
       err = gcry_cipher_decrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);                                                 ^~~
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:272:11: error: too few 
arguments to function ‘gcry_cipher_decrypt’
       err = gcry_cipher_decrypt((gcry_cipher_hd_t)ctx, dst, length, src, 
length);           ^~~~~~~~~~~~~~~~~~~
  In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:25:0,
                   from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
  /usr/include/gcrypt.h:571:5: note: declared here
   int gcry_cipher_decrypt (GcryCipherHd h,
       ^~~~~~~~~~~~~~~~~~~
  In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c: In function 
‘qcrypto_gcrypt_cipher_encrypt’:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:284:5: error: unknown 
type name ‘gcry_error_t’; did you mean ‘g_error’?
       gcry_error_t err;
       ^~~~~~~~~~~~
       g_error
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:293:21: warning: 
passing argument 1 of ‘xts_encrypt’ makes pointer from integer without a cast 
[-Wint-conversion]
           xts_encrypt(ctx->handle, ctx->tweakhandle,
                       ^~~
  In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:22:0,
                   from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
  /export/home/denber/qemu-2.12.0/include/crypto/xts.h:73:6: note: expected 
‘const void *’ but argument is of type ‘int’
   void xts_encrypt(const void *datactx,
        ^~~~~~~~~~~
  In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:293:34: warning: 
passing argument 2 of ‘xts_encrypt’ makes pointer from integer without a cast 
[-Wint-conversion]
           xts_encrypt(ctx->handle, ctx->tweakhandle,
                                    ^~~
  In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:22:0,
                   from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
  /export/home/denber/qemu-2.12.0/include/crypto/xts.h:73:6: note: expected 
‘const void *’ but argument is of type ‘int’
   void xts_encrypt(const void *datactx,
        ^~~~~~~~~~~
  In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:298:35: warning: 
passing argument 1 of ‘gcry_cipher_encrypt’ makes pointer from integer without 
a cast [-Wint-conversion]
           err = gcry_cipher_encrypt(ctx->handle,
                                     ^~~
  In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:25:0,
                   from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
  /usr/include/gcrypt.h:566:5: note: expected ‘GcryCipherHd {aka struct 
gcry_cipher_handle *}’ but argument is of type ‘int’
   int gcry_cipher_encrypt (GcryCipherHd h,
       ^~~~~~~~~~~~~~~~~~~
  In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c: In function 
‘qcrypto_gcrypt_cipher_decrypt’:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:320:5: error: unknown 
type name ‘gcry_error_t’; did you mean ‘g_error’?
       gcry_error_t err;
       ^~~~~~~~~~~~
       g_error
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:329:21: warning: 
passing argument 1 of ‘xts_decrypt’ makes pointer from integer without a cast 
[-Wint-conversion]
           xts_decrypt(ctx->handle, ctx->tweakhandle,
                       ^~~
  In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:22:0,
                   from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
  /export/home/denber/qemu-2.12.0/include/crypto/xts.h:51:6: note: expected 
‘const void *’ but argument is of type ‘int’
   void xts_decrypt(const void *datactx,
        ^~~~~~~~~~~
  In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:329:34: warning: 
passing argument 2 of ‘xts_decrypt’ makes pointer from integer without a cast 
[-Wint-conversion]
           xts_decrypt(ctx->handle, ctx->tweakhandle,
                                    ^~~
  In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:22:0,
                   from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
  /export/home/denber/qemu-2.12.0/include/crypto/xts.h:51:6: note: expected 
‘const void *’ but argument is of type ‘int’
   void xts_decrypt(const void *datactx,
        ^~~~~~~~~~~
  In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:334:35: warning: 
passing argument 1 of ‘gcry_cipher_decrypt’ makes pointer from integer without 
a cast [-Wint-conversion]
           err = gcry_cipher_decrypt(ctx->handle,
                                     ^~~
  In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:25:0,
                   from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
  /usr/include/gcrypt.h:571:5: note: expected ‘GcryCipherHd {aka struct 
gcry_cipher_handle *}’ but argument is of type ‘int’
   int gcry_cipher_decrypt (GcryCipherHd h,
       ^~~~~~~~~~~~~~~~~~~
  In file included from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:0:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c: In function 
‘qcrypto_gcrypt_cipher_setiv’:
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:353:5: error: unknown 
type name ‘gcry_error_t’; did you mean ‘g_error’?
       gcry_error_t err;
       ^~~~~~~~~~~~
       g_error
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:365:19: warning: 
implicit declaration of function ‘gcry_cipher_setctr’; did you mean 
‘gcry_cipher_setiv’? [-Wimplicit-function-declaration]
               err = gcry_cipher_setctr(ctx->handle, iv, niv);
                     ^~~~~~~~~~~~~~~~~~
                     gcry_cipher_setiv
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:365:19: warning: 
nested extern declaration of ‘gcry_cipher_setctr’ [-Wnested-externs]
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:372:13: warning: 
implicit declaration of function ‘gcry_cipher_reset’; did you mean 
‘gcry_cipher_close’? [-Wimplicit-function-declaration]
               gcry_cipher_reset(ctx->handle);
               ^~~~~~~~~~~~~~~~~
               gcry_cipher_close
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:372:13: warning: 
nested extern declaration of ‘gcry_cipher_reset’ [-Wnested-externs]
  /export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:373:19: warning: 
passing argument 1 of ‘gcry_cipher_ctl’ makes pointer from integer without a 
cast [-Wint-conversion]
               err = gcry_cipher_setiv(ctx->handle, iv, niv);
                     ^~~~~~~~~~~~~~~~~
  In file included from 
/export/home/denber/qemu-2.12.0/crypto/cipher-gcrypt.c:25:0,
                   from /export/home/denber/qemu-2.12.0/crypto/cipher.c:153:
  /usr/include/gcrypt.h:540:5: note: expected ‘GcryCipherHd {aka struct 
gcry_cipher_handle *}’ but argument is of type ‘int’
   int gcry_cipher_ctl( GcryCipherHd h, int cmd, void *buffer, size_t buflen);
       ^~~~~~~~~~~~~~~
  gmake: *** [/export/home/denber/qemu-2.12.0/rules.mak:67: crypto/cipher.o] 
Error 1

  ---------------------------------------------------------------------

  I do have libgcrypt, libgcrypt_dev, and libgcrypt_utils installed from
  opencsw.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1785698/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]