-
Notifications
You must be signed in to change notification settings - Fork 125
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
cdef16_avx2.asm:858: error: invalid number of operands #65
Comments
This may be due to not having enable_language(ASM) at the start of the top level cmakelists.txt file. I think this is (unfortunately) a requirement of CMake. |
I am trying this suggestion. Do you have an explanation for the regular build succeeding, whereas python package build fails? |
Not sure, but it could be affected by other dependencies also included in the build, if they differ. I learned of this issue from the CMake docs and I observed similar issues in the tensorstore build before adding code to ensure the necessary enable_languages calls were at the top level of the tensorstore build, but I didn't attempt to understand exactly why this issue exists in CMake. |
Adding enable_language(ASM)
enable_language(ASM_NASM) before
Keeping just
|
It's trying to use |
Thanks for spotting that Laramie. We haven't tested with yasm, but I believe cmake's asm_nasm language support (limited as it is) will look for either nasm or yasm. It seems like we need to somehow force it to only accept nasm, and to fail if yasm is found. Not sure if CMake will choose nasm if both nasm and yasm are installed --- if so the solution could be to just install nasm on your build machine. |
I already have an install nasm step which uses ilammy/setup-nasm@v1. |
On my local computer, this is the log I get:
but
|
|
The command line from CMake shows /usr/bin/yasm --- are you sure that file does not exist? |
There is no Now I remember. The Python package script uses https://github.com/dockcross/dockcross/ for compiling packages compatible with a variety if Linux distributions, and these paths mentioned in the error message are as mounted in the docker container. And the docker container probably has |
This is definitely yasm/nasm difference. If I set
With both nasm and yasm installed, CMake configure step picks up nasm and compiles tensorstore normally. While it would be good to support |
Netwide assembler is a small package, but when require it is hard to avoid it (e.g. google/tensorstore#65 (comment)). $ apt show nasm Package: nasm Version: 2.15.05-1 Priority: optional Section: universe/devel Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Anibal Monsalve Salazar <anibal@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 3,345 kB Depends: dpkg (>= 1.15.4) | install-info, libc6 (>= 2.14) Homepage: http://www.nasm.us/ Download-Size: 375 kB APT-Manual-Installed: yes APT-Sources: http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages Description: General-purpose x86 assembler Netwide Assembler. NASM will currently output flat-form binary files, a.out, COFF and ELF Unix object files, and Microsoft 16-bit DOS and Win32 object files. . Also included is NDISASM, a prototype x86 binary-file disassembler which uses the same instruction table as NASM. . NASM is released under the GNU Lesser General Public License (LGPL).
Netwide assembler is a small package, but when require it is hard to avoid it (e.g. google/tensorstore#65 (comment)). $ apt show nasm Package: nasm Version: 2.15.05-1 Priority: optional Section: universe/devel Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Anibal Monsalve Salazar <anibal@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 3,345 kB Depends: dpkg (>= 1.15.4) | install-info, libc6 (>= 2.14) Homepage: http://www.nasm.us/ Download-Size: 375 kB APT-Manual-Installed: yes APT-Sources: http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages Description: General-purpose x86 assembler Netwide Assembler. NASM will currently output flat-form binary files, a.out, COFF and ELF Unix object files, and Microsoft 16-bit DOS and Win32 object files. . Also included is NDISASM, a prototype x86 binary-file disassembler which uses the same instruction table as NASM. . NASM is released under the GNU Lesser General Public License (LGPL).
Using tensorstore as a CMake dependency in my project, compiling on Linux in CI fails (log tail below). This happens both with b8949f2 and af7dbb9. Relevant GitHub action.
The text was updated successfully, but these errors were encountered: