mirror of
https://github.com/netwide-assembler/nasm
synced 2026-08-26 16:23:04 -04:00
No description
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> |
||
|---|---|---|
| .github/workflows | ||
| asm | ||
| autoconf | ||
| common | ||
| config | ||
| contrib | ||
| disasm | ||
| doc | ||
| editors | ||
| include | ||
| macros | ||
| misc | ||
| Mkfiles | ||
| nasmlib | ||
| nsis | ||
| output | ||
| perllib | ||
| stdlib | ||
| templates | ||
| test | ||
| tools | ||
| travis | ||
| win | ||
| x86 | ||
| zlib | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .travis.yml | ||
| AUTHORS | ||
| autogen.sh | ||
| ChangeLog | ||
| CHANGES | ||
| configure.ac | ||
| INSTALL | ||
| LICENSE | ||
| Makefile.in | ||
| nasm.spec.in | ||
| nasm.spec.sed | ||
| nasm.txt | ||
| ndisasm.txt | ||
| README.md | ||
| SubmittingPatches | ||
| travis.mak.in | ||
| version | ||
| version.pl | ||
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.
Visit our nasm.us website for more details.
With best regards, the NASM crew.