Adding #include </opt/csw/include/gcrypt.h> is definitely wrong. You are instead missing the right -I include path. The libgcrypt-config command should be in $PATH, and should print "-I/opt/csw/include" args when running "libgcrypt-config --cflags". If that doesn't happen, then the gcrypt installation is broken.
-- 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, Solaris 10 Update 11, 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