Go to file
Fabian Giesen 713fd1ffc8 output: codeview -- change version number written
Windows Store and Xbox One apps need to pass WACK, the Windows App
Certification Kit, and part of that process involves a tool named
BinScope that checks the debug info of all object files making up
the final executable against a list of minimum versions.

These minimum versions get increased periodically as new SDKs and
compilers are released. In a patch 2 years ago, I made NASM
pretend it was MASM and output a then-current MASM version number.

Well, the minimum version number has increased again, and
periodically hardcoding a new random MASM version to keep BinScope
happy doesn't seem like the way to go.

It turns out that BinScope does not impose any minimum version
requirements on object files listing a source language BinScope
doesn't know about.

I have no idea how to officially request a new CodeView language
ID (or whether there even is a way to do so for someone outside
MS). But experimentally, using 'N' (0x4e) for NASM seems to be
working just fine and is far away from the range of currently
allocated language IDs (which stop at 0x10).

Long story short, make NASM emit a source language ID of 0x4e,
with the actual NASM version in the version number fields.
BinScope is happy to accept that, and since the language ID field
is purely an informational field in an optional debug info record
that (as far as I can tell) is not used for anything else, this
seems reasonably safe and unlikely to cause trouble.

Signed-off-by: Fabian Giesen <fabiang@radgametools.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2018-04-20 11:27:19 +03:00
asm Revert "Use fallthrough() to placate compiler" 2018-02-25 22:25:07 +03:00
common Don't sort opcodes; move all pseudo-ops to the beginning 2017-05-01 21:44:24 -07:00
config Windows: clean up the handling of stat on Windows 2017-04-06 15:48:51 -07:00
contrib contrib/MSVC6.txt: Add guide how to use nasm in MSVC6 2010-01-24 23:17:55 +03:00
disasm asm/*: Move directive processing to its own file, refactor error handling 2017-03-07 19:31:04 -08:00
doc Merge remote-tracking branch 'origin/nasm-2.13.xx' 2018-02-20 12:40:11 -08:00
headers headers: Update year 2010-04-25 12:02:38 +04:00
include Revert "compiler: Add fallthrough() helper" 2018-02-25 22:25:57 +03:00
macros BR 3392411: smartalign: make sure we always define the end symbol 2017-09-27 15:29:01 -07:00
misc misc/omfdump.c: expand dDEPFILE COMENT records 2017-08-16 15:23:01 -07:00
Mkfiles openwcom.mak: use \ as path separators 2018-02-22 15:02:42 -08:00
nasmlib Eliminate filename length restrictions, remote ofmt->filename() 2017-12-20 13:38:20 -08:00
nsis nsis: use /solid compression for smaller size 2017-04-07 11:05:09 -07:00
output output: codeview -- change version number written 2018-04-20 11:27:19 +03:00
perllib perllib/README: delete obsolete file 2017-02-23 20:24:56 -08:00
rdoff Revert "Use fallthrough() to placate compiler" 2018-02-25 22:25:07 +03:00
stdlib Eliminate filename length restrictions, remote ofmt->filename() 2017-12-20 13:38:20 -08:00
test Merge remote-tracking branch 'origin/nasm-2.13.xx' 2018-02-20 12:40:11 -08:00
tools msvc.mak: (hopefully) make external dependencies work with NMAKE 2017-11-08 10:59:17 -08:00
x86 insns.dat: Update UD0 encoding to fit the specification 2018-02-25 18:50:52 +03:00
.gitignore More autoconf modernizations; upgrade AC_PREREQ to 2.69 2017-11-08 10:22:10 -08:00
aclocal.m4 Revert "compiler: Add fallthrough() helper" 2018-02-25 22:25:57 +03:00
AUTHORS Correct name spelling and email address 2015-01-18 20:21:14 +02:00
autogen.sh More autoconf modernizations; upgrade AC_PREREQ to 2.69 2017-11-08 10:22:10 -08:00
ChangeLog Documention Changes for Release 2.00 2007-11-25 14:25:13 -08:00
CHANGES Move the revision history into the documentation 2008-07-14 02:45:57 -04:00
configure.ac Revert "compiler: Add fallthrough() helper" 2018-02-25 22:25:57 +03:00
INSTALL Update the INSTALL file to match current reality 2008-06-28 18:53:55 -07:00
install-sh NASM 0.98.30 2002-04-30 21:09:12 +00:00
LICENSE LICENSE: update year 2010-08-12 20:15:27 -07:00
Makefile.in Eliminate filename length restrictions, remote ofmt->filename() 2017-12-20 13:38:20 -08:00
nasm.spec.in build: Merge CPPFLAGS into ALL_CFLAGS 2017-07-06 01:36:06 +03:00
nasm.spec.sed nasm.spec: use a sed file to insert perl dependencies 2017-04-23 18:54:23 -07:00
nasm.txt Defer debug format search until after command line parsing 2016-03-07 23:20:00 -08:00
ndisasm.txt ndisasm: man -- Add missing -p option 2013-04-20 20:18:46 +04:00
README README: add note to see the AUTHORS file 2010-01-06 20:56:11 -08:00
SubmittingPatches Add SubmittingPatches file 2010-10-03 21:02:08 +04:00
TODO General push for x86-64 support, dubbed 0.99.00. 2007-04-12 02:40:54 +00:00
version version: bump to 2.13.04rc0 until we have an actual -rc 2018-02-14 11:13:05 -08:00
version.pl Handle multiple standard macro sets sanely 2016-07-13 14:23:48 -07:00

              NASM, the Netwide Assembler.

Many many developers all over the net respect NASM for what it is
- a widespread (thus netwide), portable (thus netwide!), very
flexible and mature assembler tool with support for many output
formats (thus netwide!!).

Now we have good news for you: NASM is licensed under the "simplified"
(2-clause) BSD license.  This means its development is open to even
wider society of programmers wishing to improve their lovely
assembler.

The NASM project is now situated at SourceForge.net, the most
popular Open Source development site on the Internet.

Visit our website at http://nasm.sourceforge.net/ and our
SourceForge project at http://sourceforge.net/projects/nasm/

See the file CHANGES for the description of changes between revisions,
and the file AUTHORS for a list of contributors.

                                                   With best regards,
                                                           NASM crew.