Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

qemu fails to compile: undefined reference to 'gcry_mpi_print' and others #48

Closed
moefear85 opened this issue Jul 12, 2022 · 1 comment
Closed

Comments

@moefear85
Copy link

When compiling on Ubuntu 22.04, I get the following compile errors midway through:

/usr/bin/ld: libcommon.fa.p/hw_misc_esp32_rsa.c.o: in function `mpi_gcrypt_to_block':
/home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:79: undefined reference to `gcry_mpi_print'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:81: undefined reference to `gcry_strerror'
/usr/bin/ld: libcommon.fa.p/hw_misc_esp32_rsa.c.o: in function `mpi_block_to_gcrypt':
/home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:59: undefined reference to `gcry_mpi_scan'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:61: undefined reference to `gcry_strerror'
/usr/bin/ld: libcommon.fa.p/hw_misc_esp32_rsa.c.o: in function `esp32_rsa_exp_mod':
/home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:105: undefined reference to `gcry_mpi_new'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:106: undefined reference to `gcry_mpi_powm'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:110: undefined reference to `gcry_mpi_release'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:111: undefined reference to `gcry_mpi_release'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:112: undefined reference to `gcry_mpi_release'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:113: undefined reference to `gcry_mpi_release'
/usr/bin/ld: libcommon.fa.p/hw_misc_esp32_rsa.c.o: in function `esp32_rsa_mod_mul_op':
/home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:186: undefined reference to `gcry_mpi_new'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:187: undefined reference to `gcry_mpi_set_bit'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:188: undefined reference to `gcry_mpi_invm'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:204: undefined reference to `gcry_mpi_new'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:205: undefined reference to `gcry_mpi_new'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:208: undefined reference to `gcry_mpi_mulm'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:210: undefined reference to `gcry_mpi_mulm'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:216: undefined reference to `gcry_mpi_release'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:217: undefined reference to `gcry_mpi_release'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:218: undefined reference to `gcry_mpi_release'
/usr/bin/ld: libcommon.fa.p/hw_misc_esp32_rsa.c.o: in function `esp32_rsa_mul_op':
/home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:151: undefined reference to `gcry_mpi_new'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:152: undefined reference to `gcry_mpi_mul'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:156: undefined reference to `gcry_mpi_release'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:157: undefined reference to `gcry_mpi_release'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:158: undefined reference to `gcry_mpi_release'
/usr/bin/ld: libcommon.fa.p/hw_misc_esp32_rsa.c.o: in function `esp32_rsa_mod_mul_op':
/home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:199: undefined reference to `gcry_mpi_release'
/usr/bin/ld: /home/moefear/source/qemu/build/../hw/misc/esp32_rsa.c:184: undefined reference to `gcry_mpi_new'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
make[1]: *** [Makefile:162: run-ninja] Error 1
make[1]: Leaving directory '/home/moefear/source/qemu/build'
make: *** [GNUmakefile:11: all] Error 2

Previously during compile, it failed due to a missing header which was resolved by installing libgcrypt20-dev. But then the mentioned compile errors occured half-way through the build. They seem related to libgrypt, so I assume there is a version mismatch? If so, how to resolve? Are there precompiled binaries of qemu anywhere that support:

-machine=esp32

?

@moefear85
Copy link
Author

sorry I goofed. Rerunning the configure script after installing libgcrypt20-dev fixed the issue.

igrr pushed a commit that referenced this issue Aug 2, 2022
Include the qtest reproducer provided by Alexander Bulekov
in https://gitlab.com/qemu-project/qemu/-/issues/542.
Without the previous commit, we get:

  $ make check-qtest-i386
  ...
  Running test tests/qtest/intel-hda-test
  AddressSanitizer:DEADLYSIGNAL
  =================================================================
  ==1580408==ERROR: AddressSanitizer: stack-overflow on address 0x7ffc3d566fe0
      #0 0x63d297cf in address_space_translate_internal softmmu/physmem.c:356
      #1 0x63d27260 in flatview_do_translate softmmu/physmem.c:499:15
      #2 0x63d27af5 in flatview_translate softmmu/physmem.c:565:15
      #3 0x63d4ce84 in flatview_write softmmu/physmem.c:2850:10
      #4 0x63d4cb18 in address_space_write softmmu/physmem.c:2950:18
      #5 0x63d4d387 in address_space_rw softmmu/physmem.c:2960:16
      #6 0x62ae12f2 in dma_memory_rw_relaxed include/sysemu/dma.h:89:12
      #7 0x62ae104a in dma_memory_rw include/sysemu/dma.h:132:12
      #8 0x62ae6157 in dma_memory_write include/sysemu/dma.h:173:12
      #9 0x62ae5ec0 in stl_le_dma include/sysemu/dma.h:275:1
      #10 0x62ae5ba2 in stl_le_pci_dma include/hw/pci/pci.h:871:1
      #11 0x62ad59a6 in intel_hda_response hw/audio/intel-hda.c:372:12
      #12 0x62ad2afb in hda_codec_response hw/audio/intel-hda.c:107:5
      #13 0x62aec4e1 in hda_audio_command hw/audio/hda-codec.c:655:5
      #14 0x62ae05d9 in intel_hda_send_command hw/audio/intel-hda.c:307:5
      #15 0x62adff54 in intel_hda_corb_run hw/audio/intel-hda.c:342:9
      #16 0x62adc13b in intel_hda_set_corb_wp hw/audio/intel-hda.c:548:5
      #17 0x62ae5942 in intel_hda_reg_write hw/audio/intel-hda.c:977:9
      #18 0x62ada10a in intel_hda_mmio_write hw/audio/intel-hda.c:1054:5
      #19 0x63d8f383 in memory_region_write_accessor softmmu/memory.c:492:5
      #20 0x63d8ecc1 in access_with_adjusted_size softmmu/memory.c:554:18
      #21 0x63d8d5d6 in memory_region_dispatch_write softmmu/memory.c:1504:16
      #22 0x63d5e85e in flatview_write_continue softmmu/physmem.c:2812:23
      #23 0x63d4d05b in flatview_write softmmu/physmem.c:2854:12
      #24 0x63d4cb18 in address_space_write softmmu/physmem.c:2950:18
      #25 0x63d4d387 in address_space_rw softmmu/physmem.c:2960:16
      #26 0x62ae12f2 in dma_memory_rw_relaxed include/sysemu/dma.h:89:12
      #27 0x62ae104a in dma_memory_rw include/sysemu/dma.h:132:12
      #28 0x62ae6157 in dma_memory_write include/sysemu/dma.h:173:12
      #29 0x62ae5ec0 in stl_le_dma include/sysemu/dma.h:275:1
      #30 0x62ae5ba2 in stl_le_pci_dma include/hw/pci/pci.h:871:1
      #31 0x62ad59a6 in intel_hda_response hw/audio/intel-hda.c:372:12
      #32 0x62ad2afb in hda_codec_response hw/audio/intel-hda.c:107:5
      #33 0x62aec4e1 in hda_audio_command hw/audio/hda-codec.c:655:5
      #34 0x62ae05d9 in intel_hda_send_command hw/audio/intel-hda.c:307:5
      #35 0x62adff54 in intel_hda_corb_run hw/audio/intel-hda.c:342:9
      #36 0x62adc13b in intel_hda_set_corb_wp hw/audio/intel-hda.c:548:5
      #37 0x62ae5942 in intel_hda_reg_write hw/audio/intel-hda.c:977:9
      #38 0x62ada10a in intel_hda_mmio_write hw/audio/intel-hda.c:1054:5
      #39 0x63d8f383 in memory_region_write_accessor softmmu/memory.c:492:5
      #40 0x63d8ecc1 in access_with_adjusted_size softmmu/memory.c:554:18
      #41 0x63d8d5d6 in memory_region_dispatch_write softmmu/memory.c:1504:16
      #42 0x63d5e85e in flatview_write_continue softmmu/physmem.c:2812:23
      #43 0x63d4d05b in flatview_write softmmu/physmem.c:2854:12
      #44 0x63d4cb18 in address_space_write softmmu/physmem.c:2950:18
      #45 0x63d4d387 in address_space_rw softmmu/physmem.c:2960:16
      #46 0x62ae12f2 in dma_memory_rw_relaxed include/sysemu/dma.h:89:12
      qemu#47 0x62ae104a in dma_memory_rw include/sysemu/dma.h:132:12
      #48 0x62ae6157 in dma_memory_write include/sysemu/dma.h:173:12
      ...
  SUMMARY: AddressSanitizer: stack-overflow softmmu/physmem.c:356 in address_space_translate_internal
  ==1580408==ABORTING
  Broken pipe
  Aborted (core dumped)

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20211218160912.1591633-4-philmd@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant