系統 - Debian - QEMU - 解決hash_md5_sha.c:1316:35: error: sha1_process_block64_shaNI undeclared問題



問題如下:

$ ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu- make O=out
      Using busybox-1.37.0 as source for busybox
      GEN     busybox-1.37.0/out/Makefile
      CC      libbb/hash_md5_sha.o
    busybox-1.37.0/libbb/hash_md5_sha.c: In function ‘sha1_end’:
    busybox-1.37.0/libbb/hash_md5_sha.c:1316:35: error: ‘sha1_process_block64_shaNI’ undeclared (first use in this function); did you mean ‘sha1_process_block64’?
     1316 |          || ctx->process_block == sha1_process_block64_shaNI
          |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
          |                                   sha1_process_block64
    busybox-1.37.0/libbb/hash_md5_sha.c:1316:35: note: each undeclared identifier is reported only once for each function it appears in

解法如下:

$ ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu- make O=out menuconfig
    Settings --> [ ] SHA1: Use hardware accelerated instructions if possible
    Settings --> [ ] SHA256: Use hardware accelerated instructions if possible