diff mbox

[v2,19/19] bsd-user: fix linking conflicts with FreeBSD libcrypto

Message ID 1383928417-38009-20-git-send-email-sson@FreeBSD.org
State New
Headers show

Commit Message

Stacey Son Nov. 8, 2013, 4:33 p.m. UTC
FreeBSD has it's own AES_set_decrypt_key, etc. in libcrypto.  This
change fixes these conflicts and allows statically linking BSD
user mode qemu.

Signed-off-by: Stacey Son <sson@FreeBSD.org>
---
 include/qemu/aes.h |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

Comments

Paolo Bonzini Nov. 27, 2013, 11:23 a.m. UTC | #1
Il 08/11/2013 17:33, Stacey Son ha scritto:
> FreeBSD has it's own AES_set_decrypt_key, etc. in libcrypto.  This
> change fixes these conflicts and allows statically linking BSD
> user mode qemu.
> 
> Signed-off-by: Stacey Son <sson@FreeBSD.org>
> ---
>  include/qemu/aes.h |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/include/qemu/aes.h b/include/qemu/aes.h
> index e79c707..6d253a3 100644
> --- a/include/qemu/aes.h
> +++ b/include/qemu/aes.h
> @@ -10,6 +10,15 @@ struct aes_key_st {
>  };
>  typedef struct aes_key_st AES_KEY;
>  
> +/* FreeBSD has it's own AES_set_decrypt_key in -lcrypto, avoid conflicts. */
> +#ifdef __FreeBSD__
> +#define AES_set_encrypt_key QEMU_AES_set_encrypt_key
> +#define AES_set_decrypt_key QEMU_AES_set_decrypt_key
> +#define AES_encrypt QEMU_AES_encrypt
> +#define AES_decrypt QEMU_AES_decrypt
> +#define AES_cbc_encrypt QEMU_AES_cbc_encrypt
> +#endif
> +
>  int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
>  	AES_KEY *key);
>  int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
> 

What is the error?  Do the functions have different signatures or
semantics between QEMU and FreeBSD?

Paolo
diff mbox

Patch

diff --git a/include/qemu/aes.h b/include/qemu/aes.h
index e79c707..6d253a3 100644
--- a/include/qemu/aes.h
+++ b/include/qemu/aes.h
@@ -10,6 +10,15 @@  struct aes_key_st {
 };
 typedef struct aes_key_st AES_KEY;
 
+/* FreeBSD has it's own AES_set_decrypt_key in -lcrypto, avoid conflicts. */
+#ifdef __FreeBSD__
+#define AES_set_encrypt_key QEMU_AES_set_encrypt_key
+#define AES_set_decrypt_key QEMU_AES_set_decrypt_key
+#define AES_encrypt QEMU_AES_encrypt
+#define AES_decrypt QEMU_AES_decrypt
+#define AES_cbc_encrypt QEMU_AES_cbc_encrypt
+#endif
+
 int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
 	AES_KEY *key);
 int AES_set_decrypt_key(const unsigned char *userKey, const int bits,