pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/devel/nasm
Module Name: pkgsrc
Committed By: adam
Date: Sun Jul 5 12:11:26 UTC 2026
Modified Files:
pkgsrc/devel/nasm: Makefile distinfo
pkgsrc/devel/nasm/patches: patch-doc_Makefile.in
patch-include_compiler.h
Log Message:
nasm: updated to 3.0.2
3.02
Fix build problems on C23 compilers using a pre-C23 version of <stdbool.h> which defines bool as a macro in violation of the C23 specification.
The immediate form of the JMPE instruction (opcode 0F B8) has been changed to an absolute address, as in the Itanium Architecture Software Developer's Manual, version 2.3, Volume 4, page 4:249.
Hopefully this won't break whatever virtual environments use JMPE, but it is the closest thing there is to an official specification for this opcode.
Being an absolute address, treat it equivalent to a FAR jump and do not default to 64 bits in 64-bit mode.
That JMPE has apparently been wrong all these years is probably as good of a hint as any how much it has been actually used, but it does have the possibility of breaking virtual environments. In that
case, please file a bug report to https://bugs.nasm.us with details about the virtual environment, and we will figure out a suitable solution.
Various build fixes. Fix the documentation not building on MacOS because of the cp utility lacking -u there. Also fix not building generally due to wrong link formatting. Another fix was a typo in
compiler.h related to a C++ check.
Corrections to assembling encodings:
Fix CMP allowing LOCK which is illegal.
Correct multiple AVX512 instructions such as VCVTSD2SI, VCVTSD2USI, VCVTSS2SI, VCVTSS2USI, VCVTTSD2SI, VCVTTSD2USI, VCVTTSS2SI, VCVTTSS2USI, VGETEXPSH, VGETMANTSH, MOVDDUP, VMOVDDUP.
Fixed other encodings or instruction formats for instructions UWRMSR, CMPSD, VCMPSS, V4FMADDSS, V4FNMADDSS, VCVTDQ2PH, VCVTPD2PH, VCVTPH2UDQ, VCVTQQ2PH, VCVTUDQ2PH, VCVTUQQ2PH, VGETEXPSH, VGETMANTSH,
VRCPPH, VRSQRTPH, VCVTPH2BF8, VCVTPH2BF8S, VCVTPH2HF8, VCVTPH2HF8S.
Fixed typos in VP4DPWSSD mnemonic.
Fixed BYTE and WORD operands getting the same encoding on arithmetic instructions such as CMP.
Fixed PUSH not assembling when used with a DWORD in 64-bit mode. This is not a recommended syntax as the operand size is still 64 bits, but was permitted by earlier versions of NASM.
Fix parsing of $–escaped symbols in directives (GLOBAL, STATIC, EXTERN, REQUIRED, COMMON).
Corrections to disassembling:
Shift instructions with the unity operand were getting disassembled to a zero operand instead of one.
JMP, CALL and JMPE disassembled incorrectly with the register operands.
Whole bunch of minor fixes to operand sizes, operand size prefixes. Changes mostly return the behavior known from 2.16.03.
MOV [mem], label would be accepted without size specifiers which could cause unintended consequences. Raise an error if no size was specified and one of the operands is a memory reference and another
operands is a label.
JMP NEAR is now the same as JMP STRICT NEAR as the STRICT is redundant here. JMP WORD on the other hand is up for optimization as NEAR and WORD relate to different things – jump lengths and operation
sizes respectively.
Using redundant (or not) but valid operands size prefixes was fixed on instructions such as IRET, PUSHF, POPF, PUSH and POP.
Using an operand size prefix on a JMP or CALL instruction could generate an invalid instruction. This appears to have been a long-standing bug. Specifying the operand size by specifying the size of
the immediate explicitly (e.g. JMP DWORD label) has always worked correctly, however.
Add support for C2y-style \o escape sequences, braced escape sequences, and as NASM extensions, decimal escape sequences (\d) and control-character escape sequences (\^). See section 3.4.2.
Fix generation of the short opcodes for ADD, OR, ADC, SBB, AND, SUB, XOR, and CMP AL,imm8.
Fix truncation of the generated constant to 63 bits when invoking a single-line macro when an argument is defined as =/b or =/ub.
Add an %env() preprocessor function as a more robust and flexible alternative to the %! construct. See section 5.5.7.
The maximum number of multi-line macro parameters is now a configurable limit. See section 2.1.32.
The --limit- options and %pragma limit now accept the keywords default, maximum, and reset. See section 2.1.32.
Fix parsing of seg:offs–style FAR pointers in EQU.
Fix the %clear preprocessor directive hanging when given parameters.
The never properly implemented (or documented) preprocessor directives %rmacro and %irmacro are now properly disabled; to avoid breaking existing code, they fall back to %macro and %imacro with a
suitable warning.
Programmers should not rely on this behavior: in the future, these directives might actually be (properly) implemented.
Fix a crash when -M directives were used in response files.
New listing option -Lc to include the contents of INCBIN files, see section 2.1.4.
New listing option -Lt to include the output from every iteration of TIMES and ALIGN directives, see section 2.1.4.
The %pragma list options directive now support resetting options to their command-line default, see section 2.1.4.
New predefined macros __?LIST_OPTIONS?__ and __?LIST_OPTIONS_DEFAULT?__ to query the active and command-line default listing options. See section 2.1.4.
To generate a diff of this commit:
cvs rdiff -u -r1.73 -r1.74 pkgsrc/devel/nasm/Makefile
cvs rdiff -u -r1.40 -r1.41 pkgsrc/devel/nasm/distinfo
cvs rdiff -u -r1.5 -r1.6 pkgsrc/devel/nasm/patches/patch-doc_Makefile.in
cvs rdiff -u -r1.3 -r1.4 pkgsrc/devel/nasm/patches/patch-include_compiler.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/devel/nasm/Makefile
diff -u pkgsrc/devel/nasm/Makefile:1.73 pkgsrc/devel/nasm/Makefile:1.74
--- pkgsrc/devel/nasm/Makefile:1.73 Fri Apr 10 16:54:28 2026
+++ pkgsrc/devel/nasm/Makefile Sun Jul 5 12:11:26 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.73 2026/04/10 16:54:28 schwarz Exp $
+# $NetBSD: Makefile,v 1.74 2026/07/05 12:11:26 adam Exp $
-DISTNAME= nasm-3.01
+DISTNAME= nasm-3.02
CATEGORIES= devel lang
MASTER_SITES= https://www.nasm.us/pub/nasm/releasebuilds/${PKGVERSION_NOREV}/
EXTRACT_SUFX= .tar.xz
@@ -10,10 +10,8 @@ HOMEPAGE= https://www.nasm.us/
COMMENT= General-purpose x86 assembler
LICENSE= 2-clause-bsd
-USE_LANGUAGE= c
-USE_CC_FEATURES= c17
-FORCE_C_STD= c17
-
+USE_CC_FEATURES= c23
+USE_LANGUAGES= c
USE_TOOLS+= gmake makeinfo perl gsed
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --docdir=${PREFIX}/share/doc/nasm
Index: pkgsrc/devel/nasm/distinfo
diff -u pkgsrc/devel/nasm/distinfo:1.40 pkgsrc/devel/nasm/distinfo:1.41
--- pkgsrc/devel/nasm/distinfo:1.40 Fri Apr 10 09:36:39 2026
+++ pkgsrc/devel/nasm/distinfo Sun Jul 5 12:11:26 2026
@@ -1,8 +1,8 @@
-$NetBSD: distinfo,v 1.40 2026/04/10 09:36:39 jperkin Exp $
+$NetBSD: distinfo,v 1.41 2026/07/05 12:11:26 adam Exp $
-BLAKE2s (nasm-3.01.tar.xz) = 2033aac1add7082357ff032977389f4886d82a1027eb54286e9f5ef239da800b
-SHA512 (nasm-3.01.tar.xz) = ca9550ad3239cfaa9546a908e8de86e11a7c7dd9d6006f42d272d0b025b601cdb205e60b8b3929f31123ef450dd0f0403e1300328cadf0ffdfd459f443944482
-Size (nasm-3.01.tar.xz) = 1499136 bytes
+BLAKE2s (nasm-3.02.tar.xz) = f22d5a5f0085ded82f0a4218e0b9b55e2243c2ece4ec6e6ef21ab7ec791641ce
+SHA512 (nasm-3.02.tar.xz) = dc80d8a9a582423e62703da3cc3f37ee57735939b975faa8a72d061a8b596f763d206c7cc3e48c32d2ad726f38e430dc3b85cffd0c3b32e71e20ad9cc24f4804
+Size (nasm-3.02.tar.xz) = 1531636 bytes
SHA1 (patch-Makefile.in) = 7c3066b1cd3af540ea39023c53a2f4949d10e68d
-SHA1 (patch-doc_Makefile.in) = b9507bf63f071790ed46293f915bb40d32a31d61
-SHA1 (patch-include_compiler.h) = e74758be522c11f3560e6ff3ad5d38cac5727b77
+SHA1 (patch-doc_Makefile.in) = 9e791d03f3d06986e3dfa1b34c1d4100652a6c70
+SHA1 (patch-include_compiler.h) = aa1a957e44c29c298584518ab5f8590ece297b38
Index: pkgsrc/devel/nasm/patches/patch-doc_Makefile.in
diff -u pkgsrc/devel/nasm/patches/patch-doc_Makefile.in:1.5 pkgsrc/devel/nasm/patches/patch-doc_Makefile.in:1.6
--- pkgsrc/devel/nasm/patches/patch-doc_Makefile.in:1.5 Fri Nov 7 22:10:31 2025
+++ pkgsrc/devel/nasm/patches/patch-doc_Makefile.in Sun Jul 5 12:11:26 2026
@@ -1,10 +1,10 @@
-$NetBSD: patch-doc_Makefile.in,v 1.5 2025/11/07 22:10:31 ryoon Exp $
+$NetBSD: patch-doc_Makefile.in,v 1.6 2026/07/05 12:11:26 adam Exp $
Use correct paths and tools.
Do not build nasmdoc.pdf.
Avoid cp -u, it is not portable.
---- doc/Makefile.in.orig 2025-10-11 06:44:05.000000000 +0000
+--- doc/Makefile.in.orig 2026-06-29 03:44:05.000000000 +0000
+++ doc/Makefile.in
@@ -33,7 +33,7 @@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -26,15 +26,6 @@ Avoid cp -u, it is not portable.
# Use "make install PDFZ=.xz" to install pdf.xz
PDF =
-@@ -91,7 +91,7 @@ htmltarget=html/nasm00.html
-
- html: $(HTMLAUX)
- $(MKDIR_P) html
-- for f in $(HTMLAUX); do $(CP_UF) "$(srcdir)/$$f" html/; done
-+ for f in $(HTMLAUX); do $(CP_F) "$(srcdir)/$$f" html/; done
- $(MAKE) $(htmltarget)
-
- RDSRC = $(RUNPERL) $(srcdir)/rdsrc.pl -I$(srcdir) -M$(@F).dep
@@ -158,7 +158,7 @@ install_pdf: nasmdoc.pdf$(PDFZ)
$(MKDIR_P) $(DESTDIR)$(pdfdir)
$(INSTALL_DATA) nasmdoc.pdf$(PDFZ) $(DESTDIR)$(pdfdir)
Index: pkgsrc/devel/nasm/patches/patch-include_compiler.h
diff -u pkgsrc/devel/nasm/patches/patch-include_compiler.h:1.3 pkgsrc/devel/nasm/patches/patch-include_compiler.h:1.4
--- pkgsrc/devel/nasm/patches/patch-include_compiler.h:1.3 Fri Apr 10 09:36:39 2026
+++ pkgsrc/devel/nasm/patches/patch-include_compiler.h Sun Jul 5 12:11:26 2026
@@ -1,9 +1,8 @@
-$NetBSD: patch-include_compiler.h,v 1.3 2026/04/10 09:36:39 jperkin Exp $
+$NetBSD: patch-include_compiler.h,v 1.4 2026/07/05 12:11:26 adam Exp $
-* For NetBSD, do not use complicated trick. Only for c17 not for c23.
-* Fix SunOS, presence of stdbit.h doesn't mean endian.h shouldn't be included.
+Fix SunOS, presence of stdbit.h doesn't mean endian.h shouldn't be included.
---- include/compiler.h.orig 2025-10-11 06:44:05.000000000 +0000
+--- include/compiler.h.orig 2026-06-29 03:44:05.000000000 +0000
+++ include/compiler.h
@@ -96,6 +96,9 @@
#ifdef HAVE_STDBIT_H
@@ -15,24 +14,3 @@ $NetBSD: patch-include_compiler.h,v 1.3
# undef WORDS_LITTLEENDIAN
# undef WORDS_BIGENDIAN
-@@ -183,6 +186,7 @@ char * pure_func strrchrnul(const char *
-
- #if !defined(__cplusplus) || (__STDC_VERSION >= 202311L)
- /* C++ and C23 have bool, false, and true as proper keywords */
-+#if !defined(__NetBSD__)
- # ifdef HAVE_STDBOOL_H
- /* If <stdbool.h> exists, include it explicitly to prevent it from
- begin included later, causing the "bool" macro to be defined. */
-@@ -209,6 +213,12 @@ typedef enum bool { false, true } bool;
- argument and because bool was redefined as a typedef if it previously
- was defined as a macro (see above.) */
- # define bool(x) ((bool)!!(x))
-+#else /* __NetBSD__ */
-+#include <stdbool.h>
-+#undef bool
-+#define bool(x) ((bool)!!(x))
-+typedef _Bool bool;
-+#endif
- #endif
-
- /* Create a NULL pointer of the same type as the address of
Home |
Main Index |
Thread Index |
Old Index