From: Brad Smith Subject: UPDATE: nasm 3.01 To: ports@openbsd.org Cc: jasper@openbsd.org Date: Wed, 25 Feb 2026 17:22:25 -0500 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 +MAINTAINER= Jasper Lievisse Adriaanse # 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 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 exists, include it explicitly to prevent it from +- begin included later, causing the "bool" macro to be defined. */ + # include +-# 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