Project

General

Profile

Bug #419

assembly kernels are not used when building with CMake on Windows

Added by Rossen Apostolov over 9 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Erik Lindahl
Category:
mdrun
Target version:
Affected version - extra info:
Affected version:
Difficulty:
uncategorized
Close

Description

Assembly kernels are not used when building with CMake on Windows

History

#1 Updated by Roland Schulz over 9 years ago

Is this a CMake problem? What assembler should one use? MASM doesn't work, right?

#2 Updated by Erik Lindahl over 9 years ago

Yasm is by far the best alternative. MASM definitely doesn't work - I don't even think it is maintained anymore.

The main problem is that we would need to hack some ASM rules into CMake to enable Yasm support, but that might be straightforward. The reason we haven't gotten around to it yet was that we were hoping to have the new SSE-intrinsics kernels done sooner. I'm still hoping to get those done during the beta stage, but it might be a good idea for somebody to look into the Cmake+Yasm combination too.

#3 Updated by Roland Schulz over 9 years ago

(In reply to comment #2)

Yasm is by far the best alternative. MASM definitely doesn't work - I don't
even think it is maintained anymore.

The main problem is that we would need to hack some ASM rules into CMake to
enable Yasm support, but that might be straightforward. The reason we haven't
gotten around to it yet was that we were hoping to have the new SSE-intrinsics
kernels done sooner. I'm still hoping to get those done during the beta stage,
but it might be a good idea for somebody to look into the Cmake+Yasm
combination too.

Since I don't have time to do it right away, here some links if someone has time:
http://www.cmake.org/Wiki/CMake/Assembler
http://public.kitware.com/Bug/bug_view_page.php?bug_id=10069&history=1
http://www.cmake.org/Bug/bug_view_page.php?bug_id=8170

I agree that YASM seems most promising. Has e.g. an integration into VS.

#4 Updated by Erik Lindahl over 9 years ago

Hi,

I think that is even better than 'promising'. Nasm used to be our assembler-of-choice, but due to copyright differences among the Nasm developers the project froze before x86-64 support was added and the 'yasm' project was started. Apart from that the assemblers were almost identical.

However, I just searched for nasm again, and it appears as if it is now actively developed again, including x86-64 support.

This means we should be able to use the Cmake-nasm integration almost as-is.

Cheers,

Erik

#5 Updated by Erik Lindahl over 9 years ago

Nasm now works with our cmake configuration under Mac OS X (and probably Linux), but for some reason not under Windows: The assembly kernels are listed among sources, but they are not processed.

#6 Updated by Erik Lindahl over 9 years ago

Fixed. It should now work to use both MSVC and ICC, single or double, with any assembly kernels in windows/Cmake. You will need to install nasm version >2.0, though. Committed as 5d09fb816d32549b98a4a044806226904fa091e3.

Also available in: Atom PDF