Skip to content

NASM is missing in image #1643

Open
Open
@ltheinrich

Description

@ltheinrich

Checklist

Describe your issue

When compiling aws-lc-sys (0.26.0) for x86_64-pc-windows-gnu on Linux (Fedora), the compilation fails with the following error message:

  Not searching for unused variables given on the command line.
  -- Go not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Perl not found. Disabling some code generation and using pre-generated code in generated-src/
  -- Prefix build configured: performing build using prefix "aws_lc_0_26_0_" and headers path "/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-sys-0.26.0/generated-include"
  -- Run check_run file_to_test 'memcmp_invalid_stripped_check.c', flag_to_set 'MEMCMP_INVALID_STRIPPED', and compile_flags '-O3 -DNDEBUG'.
  -- Setting CMAKE_C_STANDARD=11
  -- stdalign_check.c probe is positive, enabling AWS_LC_STDALIGN_AVAILABLE
  -- builtin_swap_check.c probe is positive, enabling AWS_LC_BUILTIN_SWAP_SUPPORTED
  -- The ASM_NASM compiler identification is unknown
  -- Found assembler: /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-sys-0.26.0/builder/prebuilt-nasm.sh
  -- Configuring incomplete, errors occurred!
  See also "/target/x86_64-pc-windows-gnu/release/build/aws-lc-sys-28e34f3caa2d27b7/out/build/CMakeFiles/CMakeOutput.log".
  See also "/target/x86_64-pc-windows-gnu/release/build/aws-lc-sys-28e34f3caa2d27b7/out/build/CMakeFiles/CMakeError.log".

  --- stderr
  CMake Error at aws-lc/crypto/CMakeLists.txt:123 (enable_language):
    The CMAKE_ASM_NASM_COMPILER:

      /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aws-lc-sys-0.26.0/builder/prebuilt-nasm.sh

    is not a full path to an existing compiler tool.

    Tell CMake where to find the compiler by setting either the environment
    variable "ASM_NASM" or the CMake cache entry CMAKE_ASM_NASM_COMPILER to the
    full path to the compiler, or to the compiler name if it is in the PATH.



  thread 'main' panicked at /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cmake-0.1.54/src/lib.rs:1119:5:

  command did not execute successfully, got: exit status: 1

  build script failed, must exit now
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

Installing nasm (dnf install nasm) fixed this issue when building directly using cargo.
It seems that this package (nasm) is missing in the Docker image.

What target(s) are you cross-compiling for?

x86_64-pc-windows-gnu

Which operating system is the host (e.g computer cross is on) running?

  • macOS
  • Windows
  • Linux / BSD
  • other OS (specify in description)

What architecture is the host?

  • x86_64 / AMD64
  • arm32
  • arm64 (including Mac M1)

What container engine is cross using?

  • docker
  • podman
  • other container engine (specify in description)

cross version

cross 0.2.5

Example

git clone https://github.com/ltheinrich/stratos
cd stratos
cross build --release --target x86_64-pc-windows-gnu

Additional information / notes

The package nasm needs to be included in the docker image to fix this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions