summaryrefslogtreecommitdiff
path: root/Mkfiles/vc15/readme.vc14.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Mkfiles/vc15/readme.vc14.txt')
-rw-r--r--Mkfiles/vc15/readme.vc14.txt106
1 files changed, 106 insertions, 0 deletions
diff --git a/Mkfiles/vc15/readme.vc14.txt b/Mkfiles/vc15/readme.vc14.txt
new file mode 100644
index 00000000..ea716567
--- /dev/null
+++ b/Mkfiles/vc15/readme.vc14.txt
@@ -0,0 +1,106 @@
+Building YASM with Microsoft Visual Studio 2015 (C/C++ v14)
+-----------------------------------------------------------
+
+This note describes how to build YASM using Microsoft Visual
+Studio 2015 (C/C++ v14).
+
+1. YASM Download
+----------------
+
+First YASM needs to be downloaded and the files placed within
+a suitable directory, which will be called <yasm> here but can
+be named and located as you wish.
+
+2. Building YASM with Microsoft 2015 (VC14)
+-------------------------------------------
+
+Now locate and double click on the yasm.sln solution file in
+the 'Mkfiles/vc14' subdirectory to open the build project in
+the Visual Studio 2015 IDE and then select:
+
+ win32 or x64 build
+ release or debug build
+
+as appropriate to build the YASM binaries that you need.
+
+4. Using YASM with Visual Sudio 2015 and VC++ version 14
+--------------------------------------------------------
+
+The YASM version vsyasm.exe is designed specifically for use
+with the 2010 and later versions of Visual Studio. To tell
+Visual Studio where to find vsyasm.exe, the environment
+variable YASMPATH can be set to the absolute path of the
+directory in which vsyasm.exe is located (this path should
+include the final backslash).
+
+Alternatively you can find the directory (or directories)
+where the VC++ compiler binaries are located and put copies
+of the vsyasm.exe binary in these directories. The typical
+location on 64-bit Windows is:
+
+C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
+
+On 32-bit Windows it is normally at:
+
+C:\Program Files\Microsoft Visual Studio 14.0\VC\bin
+
+Depending on your system you can use either the win32 or the
+x64 version of vsyasm.exe, which must be named vsyasm.exe.
+
+To use the custom tools facility in Visual Studio 2015, you
+need to place a copy of three files - yasm.props, yasm.targets
+and yasm.xml - into a location where they can be found by the
+Visual Studio build customisation processes. There are several
+ways to do this:
+
+ a. put these files in the MSBUILD customisation directory,
+ which is typically at:
+
+ C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations
+
+ b. put them in a convenient location and set this path in the
+ 'Build Customisations Search Path' in the Visual Studio
+ 'Projects and Solutions|VC++ Project Settings' item in
+ the 'Tools|Options' menu;
+
+ c. put them in a convenient location and set this path in the
+ 'Build Customisation dialogue (discussed later).
+
+To use YASM in a project, right click on the project in the Solution
+Explorer and select 'Build Customisations..'. This will give you a
+dialog box that allows you to select YASM as an assembler (note that
+your assembler files need to have the extension '.asm'). If you have
+used option c. above, you will need to let the dialogue find them
+using the 'Find Existing' button below the dialogue.
+
+To assemble a file with YASM, select the Property Page for the file
+and the select 'Yasm Assembler' in the Tool dialog entry. Then click
+'Apply' and an additional property page entry will appear and enable
+YASM settings to be established.
+
+5. A Linker Issue
+-----------------
+
+There appears to be a linker bug in the VC++ linker that prevents
+symbols with absolute addresses being linked in DLL builds. This
+means, for example, that LEA instructions of the general form:
+
+ lea, rax,[rax+symbol]
+
+cannot be used for DLL builds. The following general form
+has to be used instead:
+
+ lea rcx,[symbol wrt rip]
+ lea rax,[rax+rcx]
+
+This limitation may also cause problems with other instruction
+that use absolute addresses.
+
+6. Acknowledgements
+-------------------
+
+I am most grateful for the fantastic support that Peter Johnson,
+YASM's creator, has given me in tracking down issues in using
+YASM for the production of Windows x64 code.
+
+ Brian Gladman, 30th April 2015