No description
Find a file
H. Peter Anvin (Intel) e2f38a8aed config/msvc.h: fill in gaps versus configure.ac/config.h.in
Cross-referenced configure.ac's AC_CHECK_HEADERS/AC_CHECK_FUNCS/PA_*
tests (as materialized into config/config.h.in) against config/msvc.h
and added definitions for macros MSVC actually supports:

- HAVE_STDARG_H, HAVE_STDIO_H, HAVE_WCHAR_H: always present.
- HAVE_STDINT_H: available starting with Visual Studio 2010
  (_MSC_VER >= 1600).
- HAVE_INTRIN_H plus an #include <intrin.h>, gated on Visual Studio
  2005 (_MSC_VER >= 1400) when the header was introduced.
- HAVE_ISCNTRL: always present.
- HAVE_ISASCII plus '#define isascii __isascii', since MSVC only
  provides the underscore-prefixed spelling.
- HAVE__BYTESWAP_USHORT/_ULONG/_UINT64: always present, declared in
  <stdlib.h>, matching the names PA_FIND_FUNC probes for in
  autoconf/m4/pa_endian.m4.
- HAVE__BITSCANREVERSE (>=1400) and HAVE__BITSCANREVERSE64 (>=1400 and
  only on _M_X64/_M_ARM64, since the 64-bit intrinsic does not exist
  on 32-bit x86).
- HAVE_UNSIGNED_LONG_LONG_INT: always present.
- HAVE_UINTMAX_T, gated on '#ifdef HAVE_STDINT_H' rather than a
  separate version check, with a textual 'unsigned long long'
  fallback for uintmax_t otherwise; gating strictly on HAVE_STDINT_H
  avoids the fallback macro clobbering <stdint.h>'s own uintmax_t
  typedef when both would otherwise be available.

Deliberately left out anything that is POSIX/GNU/BSD-only or does not
exist verbatim on MSVC (strcasecmp/strsep/strlcpy/mempcpy, getuid/
getrlimit/realpath, GCC __builtin_*/attribute probes, byteswap.h/
endian.h family, C23 stdbit.h, etc.), since compiler.h and the
relevant call sites already handle those cases separately for MSVC.

Verified with x86_64-w64-mingw32-gcc -fsyntax-only using manually
defined _MSC_VER/_M_X64/_M_ARM64 across Visual Studio versions
1310/1400/1600/1800/1929 (mingw-w64 declares the same intrinsics in
the expected headers), then confirmed end-to-end with a real MSVC
(cl.exe/nmake) build in CI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-07 12:57:50 -07:00
.github/workflows github: save travis.log from CI/CD tests 2026-07-04 19:05:08 -07:00
asm files: formalize storing "mapped" file names in the filenames system 2026-07-06 17:08:01 -07:00
autoconf autoconf: sync with upstream pa_option_lto.m4 2026-06-04 10:50:54 -07:00
common files: formalize storing "mapped" file names in the filenames system 2026-07-06 17:08:01 -07:00
config config/msvc.h: fill in gaps versus configure.ac/config.h.in 2026-07-07 12:57:50 -07:00
contrib contrib/MSVC6.txt: Add guide how to use nasm in MSVC6 2010-01-24 23:17:55 +03:00
disasm Merge remote-tracking branch 'maciej/for-hpa-fixes' 2026-02-26 15:32:29 -08:00
doc doc: fix the example for saving and restoring list options 2026-06-29 07:10:26 -07:00
editors editors/nasmtok.pl: break nasmtok.json into lines 2026-07-04 19:58:07 -07:00
include files: formalize storing "mapped" file names in the filenames system 2026-07-06 17:08:01 -07:00
macros Disable other warnings in endstruc 2025-10-03 10:30:33 -07:00
misc omfdump.c: add updates from Bernd Böckmann 2026-06-07 21:00:04 -07:00
Mkfiles Mkfiles/: sync with Makefile.in 2026-07-06 13:54:38 -07:00
nasmlib nasmlib: add path name comparison function 2026-07-06 16:57:38 -07:00
nsis nsis: remove references to RDOFF tools 2022-11-08 18:22:25 -08:00
output Add --debug-prefix-map option 2026-07-04 19:22:48 -07:00
perllib Fix some typos 2022-01-09 17:34:35 +01:00
stdlib nasmlib: move filename_set_extension() into path.c 2025-12-15 09:58:42 -08:00
templates Rename "headers" directory to "templates", add .h template 2025-10-15 17:34:29 -07:00
test test: remove test/performtest.pl and redirect {test,golden} targets 2026-07-06 13:58:35 -07:00
tools Add --debug-prefix-map option 2026-07-04 19:22:48 -07:00
travis Add --debug-prefix-map option 2026-07-04 19:22:48 -07:00
win windows host: add embedded manifest file 2024-01-29 17:19:32 -08:00
x86 x86/insns.pl, tools/testgen: share cc/scc condition-code tables 2026-07-02 00:05:47 -07:00
zlib zlib: yet one more portability hack 2025-09-05 20:08:18 -07:00
.editorconfig .editorconfig: hard tabs are still 8 spaces 2024-06-10 21:12:52 -07:00
.gitattributes gitattributes: don't try to merge the version file 2020-06-30 13:48:13 -07:00
.gitignore Rename travis.mk[.in] -> travis.mak[.in] 2026-07-06 14:09:02 -07:00
.travis.yml travis: Disable osx for a while 2018-10-17 21:40:14 +03:00
AUTHORS Correct name spelling and email address 2015-01-18 20:21:14 +02:00
autogen.sh autogen.sh: Use $PATH_SEPARATOR as a path separator of ACLOCAL_PATH 2025-10-03 10:29:57 -07:00
ChangeLog Fix some typos 2022-01-09 17:34:35 +01:00
CHANGES Move the revision history into the documentation 2008-07-14 02:45:57 -04:00
configure.ac Rename travis.mk[.in] -> travis.mak[.in] 2026-07-06 14:09:02 -07:00
INSTALL Fix some typos 2022-01-09 17:34:35 +01:00
LICENSE treewide: replace verbose copyright headers with SPDX tags 2025-10-01 11:45:31 -07:00
Makefile.in Rename travis.mk[.in] -> travis.mak[.in] 2026-07-06 14:09:02 -07:00
nasm.spec.in nasm.spec.in: change http:// to https:// 2025-10-09 17:19:54 -07:00
nasm.spec.sed nasm.spec: use a sed file to insert perl dependencies 2017-04-23 18:54:23 -07:00
nasm.txt Add --debug-prefix-map option 2026-07-04 19:22:48 -07:00
ndisasm.txt ndisasm: man -- Add missing -p option 2013-04-20 20:18:46 +04:00
README.md doc: remove references to sourceforge 2020-07-01 21:48:44 -07:00
SubmittingPatches SubmittingPatches: more up to date information about the patch format 2026-06-11 12:47:32 -07:00
travis.mak.in Rename travis.mk[.in] -> travis.mak[.in] 2026-07-06 14:09:02 -07:00
version NASM 3.02 2026-06-28 20:37:13 -07:00
version.pl Move editor help files to editors/, add NASM version number 2025-10-02 13:49:43 -07:00

NASM, the Netwide Assembler

master

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.

Visit our nasm.us website for more details.

With best regards, the NASM crew.