diff --git a/README.md b/README.md index 091fee2..7497580 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,8 @@ Building ISA-L * Optional: Building with autotools requires autoconf/automake packages. x86_64: -* Assembler: nasm v2.11.01 or later (nasm v2.13 or better suggested for building in AVX512 support) - or yasm version 1.2.0 or later. +* Assembler: nasm. Version 2.15 or later suggested (other versions of nasm and + yasm may build but with limited function [support.](doc/build.md) * Compiler: gcc, clang, icc or VC compiler. aarch64: diff --git a/doc/build.md b/doc/build.md index db2c4f0..919a57e 100644 --- a/doc/build.md +++ b/doc/build.md @@ -1,9 +1,32 @@ # ISA-L Build Details -For x86-64 builds it is highly recommended to get an up-to-date version of +## Build tools + +NASM: For x86-64 builds it is highly recommended to get an up-to-date version of [nasm] that can understand the latest instruction sets. Building with an older -version is usually possible but the library may lack some function versions for -the best performance. +assembler version is often possible but the library may lack some function +versions for the best performance. For example, as a minimum, nasm v2.11.01 or +yasm 1.2.0 can be used to build a limited functionality library but it will not +include any function versions with AVX2, AVX512, or optimizations for many +processors before the assembler's build. The configure or make tools can run +tests to check the assembler's knowledge of new instructions and change build +defines. For autoconf builds, check the output of configure for full nasm +support as it includes the following lines. + + checking for nasm... yes + checking for modern nasm... yes + checking for optional nasm AVX512 support... yes + checking for additional nasm AVX512 support... yes + +If an appropriate nasm is not available from your distro, it is simple to build +from source or download an executable from [nasm]. + + git clone --depth=10 https://github.com/netwide-assembler/nasm + cd nasm + ./autogen.sh + ./configure + make + sudo make install ## Windows Build Environment Details