microsoft/vcpkg

[openssl] build failure for arm64-android using manifest mode

rwalworth opened this issue ยท 5 comments

Package: openssl:arm64-android@3.2.1

Host Environment

  • Host: x64-linux
  • Compiler: Clang 17.0.2
  • vcpkg-tool version: 2024-02-07-8a83681f921b10d86ae626fd833c253f4f8c355b
    vcpkg-scripts version: fba75d0 2024-02-14 (2 weeks ago)

To Reproduce

vcpkg install
Failure logs

-- Downloading https://github.com/openssl/openssl/archive/openssl-3.2.1.tar.gz -> openssl-openssl-openssl-3.2.1.tar.gz...
-- Extracting source /hedera-sdk-cpp/vcpkg/downloads/openssl-openssl-openssl-3.2.1.tar.gz
-- Applying patch script-prefix.patch
-- Applying patch windows/install-layout.patch
-- Applying patch windows/install-pdbs.patch
-- Applying patch unix/android-cc.patch
-- Applying patch unix/move-openssldir.patch
-- Applying patch unix/no-empty-dirs.patch
-- Applying patch unix/no-static-libs-for-shared.patch
-- Using source at /hedera-sdk-cpp/vcpkg/buildtrees/openssl/src/nssl-3.2.1-8707343470.clean
-- Getting CMake variables for arm64-android
-- Getting CMake variables for arm64-android-dbg
-- Getting CMake variables for arm64-android-rel
-- Configuring arm64-android-dbg
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: /usr/bin/bash -c "V=1 ./../src/nssl-3.2.1-8707343470.clean/vcpkg/configure --host=aarch64-linux-android \"/usr/bin/perl\" \"/hedera-sdk-cpp/vcpkg/buildtrees/openssl/src/nssl-3.2.1-8707343470.clean/Configure\" \"android-\" \"enable-static-engine\" \"enable-capieng\" \"no-tests\" \"no-docs\" \"no-shared\" \"no-module\" \"no-apps\" \"--openssldir=/etc/ssl\" \"--libdir=lib\" \"--disable-silent-rules\" \"--verbose\" \"--disable-shared\" \"--enable-static\" \"--debug\" \"--prefix=/hedera-sdk-cpp/build/android-arm64-release/vcpkg_installed/arm64-android/debug\""
    Working Directory: /hedera-sdk-cpp/vcpkg/buildtrees/openssl/arm64-android-dbg
    Error code: 1
    See logs for more information:
      /hedera-sdk-cpp/vcpkg/buildtrees/openssl/config-arm64-android-dbg-out.log
      /hedera-sdk-cpp/vcpkg/buildtrees/openssl/config-arm64-android-dbg-err.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_configure_make.cmake:862 (vcpkg_execute_required_process)
  buildtrees/versioning_/versions/openssl/53fb72a19981a3439cd569f58b722ca6cd26e23d/unix/portfile.cmake:105 (vcpkg_configure_make)
  buildtrees/versioning_/versions/openssl/53fb72a19981a3439cd569f58b722ca6cd26e23d/portfile.cmake:77 (include)
  scripts/ports.cmake:170 (include)



/hedera-sdk-cpp/vcpkg/buildtrees/openssl/config-arm64-android-dbg-out.log
Configuring OpenSSL version 3.2.1 for target android-
Using os-specific seed configuration
/hedera-sdk-cpp/vcpkg/buildtrees/openssl/config-arm64-android-dbg-err.log
+ /usr/bin/perl /hedera-sdk-cpp/vcpkg/buildtrees/openssl/src/nssl-3.2.1-8707343470.clean/Configure android- enable-static-engine enable-capieng no-tests no-docs no-shared no-module no-apps --openssldir=/etc/ssl --libdir=lib --debug --prefix=/hedera-sdk-cpp/build/android-arm64-release/vcpkg_installed/arm64-android/debug
Usage: Configure [no-<feature> ...] [enable-<feature> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]thread-pool] [[no-]default-thread-pool] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-egd] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--config=FILE] os/compiler[:flags]

pick os/compiler from:
BC-32 BS2000-OSD BSD-aarch64 BSD-armv4 BSD-generic32 BSD-generic64 BSD-ia64 
BSD-nodef-generic32 BSD-nodef-generic64 BSD-nodef-ia64 BSD-nodef-sparc64 
BSD-nodef-sparcv8 BSD-nodef-x86 BSD-nodef-x86-elf BSD-nodef-x86_64 BSD-ppc 
BSD-ppc64 BSD-ppc64le BSD-riscv32 BSD-riscv64 BSD-sparc64 BSD-sparcv8 BSD-x86 
BSD-x86-elf BSD-x86_64 Cygwin Cygwin-i386 Cygwin-i486 Cygwin-i586 Cygwin-i686 
Cygwin-x86 Cygwin-x86_64 DJGPP MPE/iX-gcc OS390-Unix UEFI UEFI-x86 UEFI-x86_64 
UWIN VC-CE VC-CLANG-WIN64-CLANGASM-ARM VC-WIN32 VC-WIN32-ARM VC-WIN32-ARM-UWP 
VC-WIN32-HYBRIDCRT VC-WIN32-ONECORE VC-WIN32-UWP VC-WIN64-ARM VC-WIN64-ARM-UWP 
VC-WIN64-CLANGASM-ARM VC-WIN64A VC-WIN64A-HYBRIDCRT VC-WIN64A-ONECORE 
VC-WIN64A-UWP VC-WIN64A-masm VC-WIN64I aix-cc aix-gcc aix64-cc aix64-gcc 
aix64-gcc-as android-arm android-arm64 android-armeabi android-mips 
android-mips64 android-x86 android-x86_64 android64 android64-aarch64 
android64-mips64 android64-x86_64 bsdi-elf-gcc cc darwin-i386 darwin-i386-cc 
darwin-ppc darwin-ppc-cc darwin64-arm64 darwin64-arm64-cc darwin64-ppc 
darwin64-ppc-cc darwin64-x86_64 darwin64-x86_64-cc gcc haiku-x86 haiku-x86_64 
hpux-ia64-cc hpux-ia64-gcc hpux-parisc-cc hpux-parisc-gcc hpux-parisc1_1-cc 
hpux-parisc1_1-gcc hpux64-ia64-cc hpux64-ia64-gcc hpux64-parisc2-cc 
hpux64-parisc2-gcc hurd-generic32 hurd-generic64 hurd-x86 hurd-x86_64 
ios-cross ios-xcrun ios64-cross ios64-xcrun iossimulator-arm64-xcrun 
iossimulator-i386-xcrun iossimulator-x86_64-xcrun iossimulator-xcrun 
iphoneos-cross irix-mips3-cc irix-mips3-gcc irix64-mips4-cc irix64-mips4-gcc 
linux-aarch64 linux-alpha-gcc linux-aout linux-arm64ilp32 linux-armv4 
linux-c64xplus linux-elf linux-generic32 linux-generic64 linux-ia64 
linux-latomic linux-mips32 linux-mips64 linux-ppc linux-ppc64 linux-ppc64le 
linux-sparcv8 linux-sparcv9 linux-x32 linux-x86 linux-x86-clang 
linux-x86-latomic linux-x86_64 linux-x86_64-clang linux32-riscv32 
linux32-s390x linux64-loongarch64 linux64-mips64 linux64-riscv64 linux64-s390x 
linux64-sparcv9 mingw mingw64 nonstop-nse nonstop-nse_64 nonstop-nse_64_put 
nonstop-nse_g nonstop-nse_g_tandem nonstop-nse_put nonstop-nsv nonstop-nsx 
nonstop-nsx_64 nonstop-nsx_64_put nonstop-nsx_g nonstop-nsx_g_tandem 
nonstop-nsx_put sco5-cc sco5-gcc solaris-sparcv7-cc solaris-sparcv7-gcc 
solaris-sparcv8-cc solaris-sparcv8-gcc solaris-sparcv9-cc solaris-sparcv9-gcc 
solaris-x86-gcc solaris64-sparcv9-cc solaris64-sparcv9-gcc solaris64-x86_64-cc 
solaris64-x86_64-gcc tru64-alpha-cc tru64-alpha-gcc uClinux-dist 
uClinux-dist64 unixware-2.0 unixware-2.1 unixware-7 unixware-7-gcc vms-alpha 
vms-alpha-p32 vms-alpha-p64 vms-ia64 vms-ia64-p32 vms-ia64-p64 vms-x86_64 
vms-x86_64-cross-ia64 vms-x86_64-p32 vms-x86_64-p64 vos-gcc vxworks-mips 
vxworks-ppc405 vxworks-ppc60x vxworks-ppc750 vxworks-ppc750-debug 
vxworks-ppc860 vxworks-ppcgen vxworks-simlinux 

Additional context

vcpkg.json
{
  "name": "hedera-sdk-cpp",
  "version-string": "0.1.0",
  "builtin-baseline": "680071397677bb123b2f2b0ebe73905feae4a955",
  "dependencies": [
    {
      "name": "openssl",
      "version>=": "3.2.1"
    },
    {
      "name": "pthreads",
      "version>=": "3.0.0#11"
    },
    {
      "name": "zlib",
      "version>=": "1.2.12"
    },
    {
      "name": "protobuf",
      "version>=": "3.21.6"
    },
    {
      "name": "grpc",
      "version>=": "1.49.0"
    },
    {
      "name": "upb",
      "version>=": "2022-06-21"
    },
    {
      "name": "nlohmann-json"
    },
    {
      "name": "curl",
      "version>=": "7.84.0"
    },
    {
      "name": "spdlog",
      "version>=": "1.13.0"
    },
    {
      "name": "cpp-httplib",
      "version>=": "0.14.1"
    }
  ]
}

It builds in CI, with NDK r25.

`.../Configure android- enable-static-engine ...

android- - so there is an empty VCPKG_DETECTED_CMAKE_ANDROID_ARCH. Maybe you have an outdated vcpkg-cmake-get-vars package? Try vcpkg upgrade (with --no-dry-run).

It builds in CI, with NDK r25.

`.../Configure android- enable-static-engine ...

android- - so there is an empty VCPKG_DETECTED_CMAKE_ANDROID_ARCH. Maybe you have an outdated vcpkg-cmake-get-vars package? Try vcpkg upgrade (with --no-dry-run).

It doesn't look like I can run that in manifest mode:

% ./vcpkg upgrade --no-dry-run
error: The upgrade command does not currently support manifest mode. Instead, modify your vcpkg.json and run install.

I tried adding it to my manifest file however:

  "dependencies": [
    {
      "name": "vcpkg-cmake-get-vars",
      "version>=": "2023-12-31"
    },
  ...

and I'm seeing the same thing:

root@356ddba84b92:/hedera-sdk-cpp# cat vcpkg/buildtrees/openssl/config-arm64-android-dbg-err.log 
+ /usr/bin/perl /hedera-sdk-cpp/vcpkg/buildtrees/openssl/src/nssl-3.2.1-8707343470.clean/Configure android- enable-static-engine enable-capieng no-tests no-docs no-shared no-module no-apps --openssldir=/etc/ssl --libdir=lib --debug --prefix=/hedera-sdk-cpp/build/android-arm64-release/vcpkg_installed/arm64-android/debug
Usage: Configure [no-<feature> ...] [enable-<feature> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]thread-pool] [[no-]default-thread-pool] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-egd] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--config=FILE] os/compiler[:flags]

pick os/compiler from:
BC-32 BS2000-OSD BSD-aarch64 BSD-armv4 BSD-generic32 BSD-generic64 BSD-ia64 
...

Is there a more recent version of vcpkg-cmake-get-vars that I'm missing?

Found the solution.

My builtin-baseline was out of date for android builds by about a year, so I updated it to the 2023.06.20 release commit hash and it's building now.

  /hedera-sdk-cpp/vcpkg/buildtrees/openssl/config-arm64-android-dbg-out.log
  /hedera-sdk-cpp/vcpkg/buildtrees/openssl/config-arm64-android-dbg-err.log

Check both the files, I found the error here, It was unable to find the XCode.