Here is an update to nasm 3.01.
https://www.nasm.us/docs/3.01/nasmac.html
Run through a bulk build on amd64 and i386.
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/nasm/Makefile,v
retrieving revision 1.54
diff -u -p -u -p -r1.54 Makefile
--- Makefile 26 Jul 2024 12:02:01 -0000 1.54
+++ Makefile 19 Feb 2026 02:36:53 -0000
@@ -1,6 +1,6 @@
COMMENT= general-purpose multi-platform x86 assembler
-VERSION= 2.16.03
+VERSION= 3.01
DISTNAME= nasm-${VERSION}
CATEGORIES= devel lang
SITES= ${HOMEPAGE}/pub/nasm/releasebuilds/${VERSION}/
@@ -8,12 +8,12 @@ EXTRACT_SUFX= .tar.xz
HOMEPAGE= https://www.nasm.us/
-MAINTAINER = Jasper Lievisse Adriaanse <[email protected]>
+MAINTAINER= Jasper Lievisse Adriaanse <[email protected]>
# BSD
PERMIT_PACKAGE= Yes
-WANTLIB= c
+WANTLIB= c z
USE_GMAKE= Yes
CONFIGURE_STYLE= gnu
@@ -25,6 +25,6 @@ INSTALL_TARGET= install_everything
NO_TEST= Yes
-DEBUG_PACKAGES =${BUILD_PACKAGES}
+DEBUG_PACKAGES= ${BUILD_PACKAGES}
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/nasm/distinfo,v
retrieving revision 1.28
diff -u -p -u -p -r1.28 distinfo
--- distinfo 26 Jul 2024 12:02:01 -0000 1.28
+++ distinfo 19 Feb 2026 02:36:53 -0000
@@ -1,2 +1,2 @@
-SHA256 (nasm-2.16.03.tar.xz) = FBKhx2C70F2wJrbA0WV6/9ZjHNCmPN229zzG1KphYUg=
-SIZE (nasm-2.16.03.tar.xz) = 1032388
+SHA256 (nasm-3.01.tar.xz) = tzJMvobnZ7ZfJvRn7YsSrYDhJOPMuJB2hVyY5Dqe3dQ=
+SIZE (nasm-3.01.tar.xz) = 1499136
Index: patches/patch-doc_Makefile_in
===================================================================
RCS file: /cvs/ports/devel/nasm/patches/patch-doc_Makefile_in,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 patch-doc_Makefile_in
--- patches/patch-doc_Makefile_in 26 Jul 2024 12:02:01 -0000 1.7
+++ patches/patch-doc_Makefile_in 19 Feb 2026 02:36:53 -0000
@@ -1,7 +1,7 @@
Index: doc/Makefile.in
--- doc/Makefile.in.orig
+++ doc/Makefile.in
-@@ -28,7 +28,7 @@ MKDIR_P = @MKDIR_P@
+@@ -42,7 +42,7 @@ MKDIR_P = @MKDIR_P@
RM_F = rm -f
RM_RF = rm -rf
CP_F = cp -f
@@ -10,29 +10,25 @@ Index: doc/Makefile.in
# Optional tools
XZ = @XZ@
-@@ -40,7 +40,7 @@ XZFILES = @XZFILES@
- HTMLAUX = nasmdoc.css local.css nasmlogw.png
+@@ -62,7 +62,7 @@ SRCS = nasmdoc.src
+ # All input files (except auto-dependencies)
+ ALLSRCS = $(SRCS) $(GENSRC)
- SRCS = nasmdoc.src inslist.src changes.src warnings.src version.src
-OUT = html nasmdoc.txt nasmdoc.pdf $(XZFILES)
+OUT = html nasmdoc.txt # nasmdoc.pdf $(XZFILES)
XZOUT = nasmdoc.pdf.xz
- # Don't delete intermediate files
-@@ -109,7 +109,6 @@ nasmdoc.pdf.xz: nasmdoc-raw.pdf
- $(XZ) -9e < $< > $@
+ # Use "make install PDFZ=.xz" to install pdf.xz
+@@ -158,7 +158,11 @@ install_pdf: nasmdoc.pdf$(PDFZ)
+ $(MKDIR_P) $(DESTDIR)$(pdfdir)
+ $(INSTALL_DATA) nasmdoc.pdf$(PDFZ) $(DESTDIR)$(pdfdir)
- clean:
-- -$(RM_F) *.rtf *.hpj *.texi *.gid *.ipf *.dip
- -$(RM_F) *.aux *.cp *.fn *.ky *.pg *.log *.toc *.tp *.vr
- -$(RM_F) inslist.src version.src fontpath Fontmap
- -$(RM_F) nasmdoc*.ps nasmdoc-raw.pdf
-@@ -122,7 +121,7 @@ install: all
- $(MKDIR_P) $(DESTDIR)$(htmldir)
- $(INSTALL_DATA) html/* $(DESTDIR)$(htmldir)
- $(MKDIR_P) $(DESTDIR)$(docdir)
-- $(INSTALL_DATA) nasmdoc.pdf nasmdoc.txt $(DESTDIR)$(docdir)
-+ $(INSTALL_DATA) internal.doc nasmdoc.txt $(DESTDIR)$(docdir)
+-install: install_html install_pdf
++install_doc: internal.doc
++ $(MKDIR_P) $(DESTDIR)$(docdir)
++ $(INSTALL_DATA) internal.doc $(DESTDIR)$(docdir)
++
++install: install_html install_doc
#
# Dummy rules that changes make behavior
Index: patches/patch-include_compiler_h
===================================================================
RCS file: patches/patch-include_compiler_h
diff -N patches/patch-include_compiler_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-include_compiler_h 19 Feb 2026 02:36:53 -0000
@@ -0,0 +1,62 @@
+- compiler.h: drop the stupid C++-style cast-to-bool hack
+ 44e89ba9b650b5e1533bca43682e167f51a3511f
+- compiler.h: the test for "neither C++ nor C23" still wrong
+ 746e7c9efa37cec9a44d84a1e96b8c38f385cc1f
+
+Index: include/compiler.h
+--- include/compiler.h.orig
++++ include/compiler.h
+@@ -181,19 +181,10 @@ size_t strlcpy(char *, const char *, size_t);
+ char * pure_func strrchrnul(const char *, int);
+ #endif
+
+-#if !defined(__cplusplus) || (__STDC_VERSION >= 202311L)
+ /* C++ and C23 have bool, false, and true as proper keywords */
++#if !defined(__cplusplus) && (__STDC_VERSION__ < 202311L)
+ # 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. */
+ # include <stdbool.h>
+-# ifdef bool
+-/* Force bool to be a typedef instead of a macro. What a "clever" hack
+- this is... */
+- typedef bool /* The macro definition of bool */
+-# undef bool
+- bool; /* No longer the macro definition */
+-# endif
+ # elif defined(HAVE___BOOL)
+ typedef _Bool bool;
+ # define false 0
+@@ -201,14 +192,10 @@ char * pure_func strrchrnul(const char *, int);
+ # else
+ /* This is a bit dangerous, because casting to this ersatz bool
+ will not produce the same result as the standard (bool) cast.
+- Instead, use the bool() constructor-style macro defined below. */
++ Instead, use the explicit construct !!x instead of relying on
++ implicit conversions or casts. */
+ typedef enum bool { false, true } bool;
+ # endif
+-/* This amounts to a C++-style conversion cast to bool. This works
+- because C ignores an argument-taking macro when used without an
+- argument and because bool was redefined as a typedef if it previously
+- was defined as a macro (see above.) */
+-# define bool(x) ((bool)!!(x))
+ #endif
+
+ /* Create a NULL pointer of the same type as the address of
+@@ -321,11 +308,11 @@ static inline void *mempset(void *dst, int c, size_t n
+ * less likely to be taken.
+ */
+ #ifdef HAVE___BUILTIN_EXPECT
+-# define likely(x) __builtin_expect(bool(x), true)
+-# define unlikely(x) __builtin_expect(bool(x), false)
++# define likely(x) __builtin_expect(!!(x), true)
++# define unlikely(x) __builtin_expect(!!(x), false)
+ #else
+-# define likely(x) bool(x)
+-# define unlikely(x) bool(x)
++# define likely(x) (!!(x))
++# define unlikely(x) (!!(x))
+ #endif
+
+ #ifdef HAVE___BUILTIN_PREFETCH
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/nasm/pkg/PLIST,v
retrieving revision 1.17
diff -u -p -u -p -r1.17 PLIST
--- pkg/PLIST 23 May 2023 09:56:52 -0000 1.17
+++ pkg/PLIST 19 Feb 2026 02:36:53 -0000
@@ -5,28 +5,31 @@
share/doc/nasm/
share/doc/nasm/html/
share/doc/nasm/html/local.css
-share/doc/nasm/html/nasmdo10.html
-share/doc/nasm/html/nasmdo11.html
-share/doc/nasm/html/nasmdo12.html
-share/doc/nasm/html/nasmdo13.html
+share/doc/nasm/html/nasm00.html
+share/doc/nasm/html/nasm01.html
+share/doc/nasm/html/nasm02.html
+share/doc/nasm/html/nasm03.html
+share/doc/nasm/html/nasm04.html
+share/doc/nasm/html/nasm05.html
+share/doc/nasm/html/nasm06.html
+share/doc/nasm/html/nasm07.html
+share/doc/nasm/html/nasm08.html
+share/doc/nasm/html/nasm09.html
+share/doc/nasm/html/nasm10.html
+share/doc/nasm/html/nasm11.html
+share/doc/nasm/html/nasm12.html
+share/doc/nasm/html/nasm13.html
+share/doc/nasm/html/nasm14.html
+share/doc/nasm/html/nasmaa.html
+share/doc/nasm/html/nasmab.html
+share/doc/nasm/html/nasmac.html
+share/doc/nasm/html/nasmad.html
+share/doc/nasm/html/nasmae.html
+share/doc/nasm/html/nasmaf.html
share/doc/nasm/html/nasmdoc.css
-share/doc/nasm/html/nasmdoc0.html
-share/doc/nasm/html/nasmdoc1.html
-share/doc/nasm/html/nasmdoc2.html
-share/doc/nasm/html/nasmdoc3.html
-share/doc/nasm/html/nasmdoc4.html
-share/doc/nasm/html/nasmdoc5.html
-share/doc/nasm/html/nasmdoc6.html
-share/doc/nasm/html/nasmdoc7.html
-share/doc/nasm/html/nasmdoc8.html
-share/doc/nasm/html/nasmdoc9.html
-share/doc/nasm/html/nasmdoca.html
-share/doc/nasm/html/nasmdocb.html
-share/doc/nasm/html/nasmdocc.html
-share/doc/nasm/html/nasmdocd.html
-share/doc/nasm/html/nasmdoce.html
-share/doc/nasm/html/nasmdocf.html
-share/doc/nasm/html/nasmdoci.html
+share/doc/nasm/html/nasmix.html
share/doc/nasm/html/nasmlogw.png
share/doc/nasm/internal.doc
-share/doc/nasm/nasmdoc.txt
+share/nasm/
+share/nasm/nasmtok.el
+share/nasm/nasmtok.json