diff mbox series

[v4,02/24] crypto: Merge crypto-obj-y into libqemuutil.a

Message ID 20190506173353.32206-3-richard.henderson@linaro.org
State Superseded
Headers show
Series Add qemu_getrandom and ARMv8.5-RNG etc | expand

Commit Message

Richard Henderson May 6, 2019, 5:33 p.m. UTC
We will shortly need this in the user-only binaries, so drop the split
into system and tools binaries.  This also means that crypto-aes-obj-y
can be merged back into crypto-obj-y.

Cc: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 Makefile             | 12 +++++-------
 Makefile.objs        |  8 ++------
 Makefile.target      |  4 ----
 configure            |  9 +++------
 crypto/Makefile.objs |  5 +----
 5 files changed, 11 insertions(+), 27 deletions(-)

-- 
2.17.1

Comments

Laurent Vivier May 7, 2019, 9:03 a.m. UTC | #1
On 06/05/2019 19:33, Richard Henderson wrote:
> We will shortly need this in the user-only binaries, so drop the split

> into system and tools binaries.  This also means that crypto-aes-obj-y

> can be merged back into crypto-obj-y.

>


This patch breaks linux-user statically linked build on Fedora.

Fedora doesn't provide static version of nettle and gcrypt, so the 
configure fails.

You should update the configure for them like you did for gnutls in PATCH 1.

Thanks,
Laurent

> Cc: Daniel P. Berrangé <berrange@redhat.com>

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>   Makefile             | 12 +++++-------

>   Makefile.objs        |  8 ++------

>   Makefile.target      |  4 ----

>   configure            |  9 +++------

>   crypto/Makefile.objs |  5 +----

>   5 files changed, 11 insertions(+), 27 deletions(-)

> 

> diff --git a/Makefile b/Makefile

> index d372493042..09c8591805 100644

> --- a/Makefile

> +++ b/Makefile

> @@ -410,7 +410,6 @@ dummy := $(call unnest-vars,, \

>                   block-obj-y \

>                   block-obj-m \

>                   crypto-obj-y \

> -                crypto-aes-obj-y \

>                   qom-obj-y \

>                   io-obj-y \

>                   common-obj-y \

> @@ -446,7 +445,6 @@ SOFTMMU_SUBDIR_RULES=$(filter %-softmmu,$(SUBDIR_RULES))

>   

>   $(SOFTMMU_SUBDIR_RULES): $(authz-obj-y)

>   $(SOFTMMU_SUBDIR_RULES): $(block-obj-y)

> -$(SOFTMMU_SUBDIR_RULES): $(crypto-obj-y)

>   $(SOFTMMU_SUBDIR_RULES): $(io-obj-y)

>   $(SOFTMMU_SUBDIR_RULES): config-all-devices.mak

>   $(SOFTMMU_SUBDIR_RULES): $(edk2-decompressed)

> @@ -502,7 +500,7 @@ Makefile: $(version-obj-y)

>   ######################################################################

>   # Build libraries

>   

> -libqemuutil.a: $(util-obj-y) $(trace-obj-y) $(stub-obj-y)

> +libqemuutil.a: $(util-obj-y) $(trace-obj-y) $(stub-obj-y) $(crypto-obj-y)

>   libvhost-user.a: $(libvhost-user-obj-y) $(util-obj-y) $(stub-obj-y)

>   

>   ######################################################################

> @@ -511,9 +509,9 @@ COMMON_LDADDS = libqemuutil.a

>   

>   qemu-img.o: qemu-img-cmds.h

>   

> -qemu-img$(EXESUF): qemu-img.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)

> -qemu-nbd$(EXESUF): qemu-nbd.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)

> -qemu-io$(EXESUF): qemu-io.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)

> +qemu-img$(EXESUF): qemu-img.o $(authz-obj-y) $(block-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)

> +qemu-nbd$(EXESUF): qemu-nbd.o $(authz-obj-y) $(block-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)

> +qemu-io$(EXESUF): qemu-io.o $(authz-obj-y) $(block-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)

>   

>   qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o $(COMMON_LDADDS)

>   

> @@ -524,7 +522,7 @@ qemu-edid$(EXESUF): qemu-edid.o hw/display/edid-generate.o $(COMMON_LDADDS)

>   fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/9p-marshal.o fsdev/9p-iov-marshal.o $(COMMON_LDADDS)

>   fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap

>   

> -scsi/qemu-pr-helper$(EXESUF): scsi/qemu-pr-helper.o scsi/utils.o $(authz-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)

> +scsi/qemu-pr-helper$(EXESUF): scsi/qemu-pr-helper.o scsi/utils.o $(authz-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)

>   ifdef CONFIG_MPATH

>   scsi/qemu-pr-helper$(EXESUF): LIBS += -ludev -lmultipath -lmpathpersist

>   endif

> diff --git a/Makefile.objs b/Makefile.objs

> index cf065de5ed..0ce429c1af 100644

> --- a/Makefile.objs

> +++ b/Makefile.objs

> @@ -3,6 +3,8 @@

>   stub-obj-y = stubs/ util/ crypto/

>   util-obj-y = util/ qobject/ qapi/

>   

> +crypto-obj-y = crypto/

> +

>   chardev-obj-y = chardev/

>   

>   #######################################################################

> @@ -21,12 +23,6 @@ block-obj-$(CONFIG_REPLICATION) += replication.o

>   

>   block-obj-m = block/

>   

> -#######################################################################

> -# crypto-obj-y is code used by both qemu system emulation and qemu-img

> -

> -crypto-obj-y = crypto/

> -crypto-aes-obj-y = crypto/

> -

>   #######################################################################

>   # qom-obj-y is code used by both qemu system emulation and qemu-img

>   

> diff --git a/Makefile.target b/Makefile.target

> index ae02495951..ce02924ffb 100644

> --- a/Makefile.target

> +++ b/Makefile.target

> @@ -179,8 +179,6 @@ dummy := $(call unnest-vars,.., \

>                  block-obj-y \

>                  block-obj-m \

>                  chardev-obj-y \

> -               crypto-obj-y \

> -               crypto-aes-obj-y \

>                  qom-obj-y \

>                  io-obj-y \

>                  common-obj-y \

> @@ -189,8 +187,6 @@ all-obj-y += $(common-obj-y)

>   all-obj-y += $(qom-obj-y)

>   all-obj-$(CONFIG_SOFTMMU) += $(authz-obj-y)

>   all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y) $(chardev-obj-y)

> -all-obj-$(CONFIG_USER_ONLY) += $(crypto-aes-obj-y)

> -all-obj-$(CONFIG_SOFTMMU) += $(crypto-obj-y)

>   all-obj-$(CONFIG_SOFTMMU) += $(io-obj-y)

>   

>   ifdef CONFIG_SOFTMMU

> diff --git a/configure b/configure

> index daadfe9ad4..0099e85a03 100755

> --- a/configure

> +++ b/configure

> @@ -2792,8 +2792,7 @@ if test "$gnutls" != "no"; then

>           # At least ubuntu 18.04 ships only shared libraries.

>           write_c_skeleton

>           if compile_prog "" "$gnutls_libs" ; then

> -            libs_softmmu="$gnutls_libs $libs_softmmu"

> -            libs_tools="$gnutls_libs $libs_tools"

> +            LIBS="$gnutls_libs $LIBS"

>               QEMU_CFLAGS="$QEMU_CFLAGS $gnutls_cflags"

>               pass="yes"

>           fi

> @@ -2860,8 +2859,7 @@ if test "$nettle" != "no"; then

>           nettle_cflags=$($pkg_config --cflags nettle)

>           nettle_libs=$($pkg_config --libs nettle)

>           nettle_version=$($pkg_config --modversion nettle)

> -        libs_softmmu="$nettle_libs $libs_softmmu"

> -        libs_tools="$nettle_libs $libs_tools"

> +        LIBS="$nettle_libs $LIBS"

>           QEMU_CFLAGS="$QEMU_CFLAGS $nettle_cflags"

>           nettle="yes"

>   

> @@ -2888,8 +2886,7 @@ if test "$gcrypt" != "no"; then

>           then

>               gcrypt_libs="$gcrypt_libs -lgpg-error"

>           fi

> -        libs_softmmu="$gcrypt_libs $libs_softmmu"

> -        libs_tools="$gcrypt_libs $libs_tools"

> +        LIBS="$gcrypt_libs $LIBS"

>           QEMU_CFLAGS="$QEMU_CFLAGS $gcrypt_cflags"

>           gcrypt="yes"

>   

> diff --git a/crypto/Makefile.objs b/crypto/Makefile.objs

> index 256c9aca1f..a291bc5b9a 100644

> --- a/crypto/Makefile.objs

> +++ b/crypto/Makefile.objs

> @@ -34,8 +34,5 @@ crypto-obj-y += xts.o

>   crypto-obj-y += block.o

>   crypto-obj-y += block-qcow.o

>   crypto-obj-y += block-luks.o

> -

> -# Let the userspace emulators avoid linking gnutls/etc

> -crypto-aes-obj-y = aes.o

> -

> +crypto-obj-y += aes.o

>   stub-obj-y += pbkdf-stub.o

>
Richard Henderson May 8, 2019, 3:58 a.m. UTC | #2
On 5/7/19 2:03 AM, Laurent Vivier wrote:
> This patch breaks linux-user statically linked build on Fedora.

> 

> Fedora doesn't provide static version of nettle and gcrypt, so the configure

> fails.

> 

> You should update the configure for them like you did for gnutls in PATCH 1.


Which fedora?  I just tried fedora30 and it worked for me...


r~
Richard Henderson May 8, 2019, 4:43 a.m. UTC | #3
On 5/7/19 8:58 PM, Richard Henderson wrote:
> On 5/7/19 2:03 AM, Laurent Vivier wrote:

>> This patch breaks linux-user statically linked build on Fedora.

>>

>> Fedora doesn't provide static version of nettle and gcrypt, so the configure

>> fails.

>>

>> You should update the configure for them like you did for gnutls in PATCH 1.

> 

> Which fedora?  I just tried fedora30 and it worked for me...


Nevermind, I see it now.


r~
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index d372493042..09c8591805 100644
--- a/Makefile
+++ b/Makefile
@@ -410,7 +410,6 @@  dummy := $(call unnest-vars,, \
                 block-obj-y \
                 block-obj-m \
                 crypto-obj-y \
-                crypto-aes-obj-y \
                 qom-obj-y \
                 io-obj-y \
                 common-obj-y \
@@ -446,7 +445,6 @@  SOFTMMU_SUBDIR_RULES=$(filter %-softmmu,$(SUBDIR_RULES))
 
 $(SOFTMMU_SUBDIR_RULES): $(authz-obj-y)
 $(SOFTMMU_SUBDIR_RULES): $(block-obj-y)
-$(SOFTMMU_SUBDIR_RULES): $(crypto-obj-y)
 $(SOFTMMU_SUBDIR_RULES): $(io-obj-y)
 $(SOFTMMU_SUBDIR_RULES): config-all-devices.mak
 $(SOFTMMU_SUBDIR_RULES): $(edk2-decompressed)
@@ -502,7 +500,7 @@  Makefile: $(version-obj-y)
 ######################################################################
 # Build libraries
 
-libqemuutil.a: $(util-obj-y) $(trace-obj-y) $(stub-obj-y)
+libqemuutil.a: $(util-obj-y) $(trace-obj-y) $(stub-obj-y) $(crypto-obj-y)
 libvhost-user.a: $(libvhost-user-obj-y) $(util-obj-y) $(stub-obj-y)
 
 ######################################################################
@@ -511,9 +509,9 @@  COMMON_LDADDS = libqemuutil.a
 
 qemu-img.o: qemu-img-cmds.h
 
-qemu-img$(EXESUF): qemu-img.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)
-qemu-nbd$(EXESUF): qemu-nbd.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)
-qemu-io$(EXESUF): qemu-io.o $(authz-obj-y) $(block-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)
+qemu-img$(EXESUF): qemu-img.o $(authz-obj-y) $(block-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)
+qemu-nbd$(EXESUF): qemu-nbd.o $(authz-obj-y) $(block-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)
+qemu-io$(EXESUF): qemu-io.o $(authz-obj-y) $(block-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)
 
 qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o $(COMMON_LDADDS)
 
@@ -524,7 +522,7 @@  qemu-edid$(EXESUF): qemu-edid.o hw/display/edid-generate.o $(COMMON_LDADDS)
 fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/9p-marshal.o fsdev/9p-iov-marshal.o $(COMMON_LDADDS)
 fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap
 
-scsi/qemu-pr-helper$(EXESUF): scsi/qemu-pr-helper.o scsi/utils.o $(authz-obj-y) $(crypto-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)
+scsi/qemu-pr-helper$(EXESUF): scsi/qemu-pr-helper.o scsi/utils.o $(authz-obj-y) $(io-obj-y) $(qom-obj-y) $(COMMON_LDADDS)
 ifdef CONFIG_MPATH
 scsi/qemu-pr-helper$(EXESUF): LIBS += -ludev -lmultipath -lmpathpersist
 endif
diff --git a/Makefile.objs b/Makefile.objs
index cf065de5ed..0ce429c1af 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -3,6 +3,8 @@ 
 stub-obj-y = stubs/ util/ crypto/
 util-obj-y = util/ qobject/ qapi/
 
+crypto-obj-y = crypto/
+
 chardev-obj-y = chardev/
 
 #######################################################################
@@ -21,12 +23,6 @@  block-obj-$(CONFIG_REPLICATION) += replication.o
 
 block-obj-m = block/
 
-#######################################################################
-# crypto-obj-y is code used by both qemu system emulation and qemu-img
-
-crypto-obj-y = crypto/
-crypto-aes-obj-y = crypto/
-
 #######################################################################
 # qom-obj-y is code used by both qemu system emulation and qemu-img
 
diff --git a/Makefile.target b/Makefile.target
index ae02495951..ce02924ffb 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -179,8 +179,6 @@  dummy := $(call unnest-vars,.., \
                block-obj-y \
                block-obj-m \
                chardev-obj-y \
-               crypto-obj-y \
-               crypto-aes-obj-y \
                qom-obj-y \
                io-obj-y \
                common-obj-y \
@@ -189,8 +187,6 @@  all-obj-y += $(common-obj-y)
 all-obj-y += $(qom-obj-y)
 all-obj-$(CONFIG_SOFTMMU) += $(authz-obj-y)
 all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y) $(chardev-obj-y)
-all-obj-$(CONFIG_USER_ONLY) += $(crypto-aes-obj-y)
-all-obj-$(CONFIG_SOFTMMU) += $(crypto-obj-y)
 all-obj-$(CONFIG_SOFTMMU) += $(io-obj-y)
 
 ifdef CONFIG_SOFTMMU
diff --git a/configure b/configure
index daadfe9ad4..0099e85a03 100755
--- a/configure
+++ b/configure
@@ -2792,8 +2792,7 @@  if test "$gnutls" != "no"; then
         # At least ubuntu 18.04 ships only shared libraries.
         write_c_skeleton
         if compile_prog "" "$gnutls_libs" ; then
-            libs_softmmu="$gnutls_libs $libs_softmmu"
-            libs_tools="$gnutls_libs $libs_tools"
+            LIBS="$gnutls_libs $LIBS"
             QEMU_CFLAGS="$QEMU_CFLAGS $gnutls_cflags"
             pass="yes"
         fi
@@ -2860,8 +2859,7 @@  if test "$nettle" != "no"; then
         nettle_cflags=$($pkg_config --cflags nettle)
         nettle_libs=$($pkg_config --libs nettle)
         nettle_version=$($pkg_config --modversion nettle)
-        libs_softmmu="$nettle_libs $libs_softmmu"
-        libs_tools="$nettle_libs $libs_tools"
+        LIBS="$nettle_libs $LIBS"
         QEMU_CFLAGS="$QEMU_CFLAGS $nettle_cflags"
         nettle="yes"
 
@@ -2888,8 +2886,7 @@  if test "$gcrypt" != "no"; then
         then
             gcrypt_libs="$gcrypt_libs -lgpg-error"
         fi
-        libs_softmmu="$gcrypt_libs $libs_softmmu"
-        libs_tools="$gcrypt_libs $libs_tools"
+        LIBS="$gcrypt_libs $LIBS"
         QEMU_CFLAGS="$QEMU_CFLAGS $gcrypt_cflags"
         gcrypt="yes"
 
diff --git a/crypto/Makefile.objs b/crypto/Makefile.objs
index 256c9aca1f..a291bc5b9a 100644
--- a/crypto/Makefile.objs
+++ b/crypto/Makefile.objs
@@ -34,8 +34,5 @@  crypto-obj-y += xts.o
 crypto-obj-y += block.o
 crypto-obj-y += block-qcow.o
 crypto-obj-y += block-luks.o
-
-# Let the userspace emulators avoid linking gnutls/etc
-crypto-aes-obj-y = aes.o
-
+crypto-obj-y += aes.o
 stub-obj-y += pbkdf-stub.o