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:   ryoon
Date:           Fri Nov  7 22:10:31 UTC 2025

Modified Files:
        pkgsrc/devel/nasm: Makefile PLIST distinfo
        pkgsrc/devel/nasm/patches: patch-Makefile.in patch-doc_Makefile.in
Added Files:
        pkgsrc/devel/nasm/patches: patch-include_compiler.h

Log Message:
devel/nasm: Update to 3.01

Changelog:
Version 3.01

  * A new obj2 version of the obj output format, intended for use on OS/2. See
    section 9.5.

  * The condition after %if or %elif would be evaluated while output is
    suppressed after %exitrep or %exitmacro. Although no output would be
    generated in either case, assembly would fail if evaluating the expression
    triggered an error.

  * Fix encoding of TCVTROWPS2PHL, correct multiple AVX512-BF16 instructions'
    operand formats and typoed mnemonics.

  * The unofficial but obvious alternate form TEST reg,mem was not accepted by
    NASM 3.00; corrected.

  * For the obj output format, multiple GROUP directives can now be specified
    for the same group; the resulting group includes all sections specified in
    all GROUP directives for the group.

  * A new %selbits() preprocessor function. See section 5.4.19.

  * A new --bits option as convenience shorthand for --before "BITS ...". See
    section 2.1.31.

  * The options and pragmas for configuring external label mangling were
    inconsistent, the former using the spelling postfix and the latter suffix.
    Furthermore, these were also documented as directives in addition to
    pragmas. Implement the already documented directives (bracketed forms only)
    and allow both postfix and suffix in all cases.

    See section 2.1.28 and section 8.10.

  * Define additional permissive patterns and fix several opcode bugs.

  * Fix parsing of two-operand forms of x87 instructions.

  * Fix bogus "absolute address can not be RIP-relative" warning.

  * Hopefully fix building with OpenWatcom.

  * Generate a warning, promoted to error by default, on the use of o64
    prefixes in 16- or 32-bit mode. If demoted to a warning or suppressed the
    prefix is ignored, but likely will trigger subsequent, harder to debug,
    error messages.

  * More consistent handling of jump and call instructions with specified
    operand sizes.

  * Fix an operand size handling bug in the CMPXCHG instruction.

Version 3.00

  * Improve the documentation for building from source (appendix D).

  * Add support for the APX and AVX10 instruction sets, and various
    miscellaneous new instructions.

  * Add new preprocessor functions: %b2hs(), %chr(), %depend(), %find(), %findi
    (), %hs2b(), %null(), %ord(), %pathsearch(), and %realpath(). See section
    5.4.

  * New preprocessor directive %note to insert a note in the list file, without
    issuing an external diagnosic. Unlike a comment, it is optionally
    macro-expanded, see section 5.11.

  * New preprocessor directive %iffile (and corresponding function %isfile())
    to test for the existence of a file. See section 5.6.12.

  * New preprocessor directive %ifdirective to test for the existence of a
    preprocessor directive, assembly directive, or pseudo-instruction; see
    section 5.6.10.

  * Fix a number of invalid memory references (usually causing crashes) on
    various invalid inputs.

  * Fix multiple bugs in the handling of $??escaped symbols.

  * The use of $ as a prefix for hexadecimal numbers has been deprecated, and
    will now issue a warning. A new directive [DOLLARHEX] can be used to
    disable this syntax entirely, see section 8.12.

  * Fix the generation of segment selector references (mainly used in the obj
    output format.)

  * Fix crash in the obj backend when code was emitted into the default
    segment, without any labels having been defined.

  * Clean up the command-line help text (-h) and break it down into individual
    topics, as the previous output was just too verbose to be practical as a
    quick reference.

  * The implicit DEFAULT ABS in 64-bit mode is deprecated and may be changed to
    REL in the future. See section 8.2. A warning is now emitted for this
    condition.

  * It is now possible to set the REL/ABS default for memory accesses using FS:
    or GS:, see section 8.2.

  * The __?DEFAULT?__ standard macro now reflects the settings of the DEFAULT
    directive. See section 6.4.

  * The NASM preprocessor now assumes that an unknown directive starting with
    %if or %elif is a misspelled or not yet implemented conditional directive,
    and tries to match it with a corresponding %endif. See section 5.6.14.

  * The masm macro package now defines a macro for x87 register syntax. See
    section 7.5.

  * A new macro package, vtern, to simplify generation of the control
    immediates for the VPTERNLOGD and VPTERNLOGQ instructions. See section 7.6.

  * A new command line option -LF allows overriding [LIST -] directives.

  * In the obj output format, allow a segment in the FLAT pseudo-group to also
    belong to another (real) group. Used on OS/2.

  * Add a new build_version directive to the Mach-O backend. See section 9.9.6.

  * Fix a spec violation in the generation of DWARF debugging information on
    ELF.

  * Response files can now be nested.

  * Many documentation improvements.

Version 2.16.03

This is a source build machinery and documentation update only. There are no
functionality changes.

  * Fix building from git in a separate directory from the source.

  * Remove some irrelevant files from the source distribution.

  * Make the documentation stronger that -O0 or -O1 are probably not what the
    user wants. See section 2.1.24.

  * Fix configure --enable-lto build option.

  * Update the included RPM .spec file.

Version 2.16.02

  * Fix building from the source distribution in a separate directory from the
    source.

  * Fix a number of issues when building from source, mostly involving
    configure or dependency generation.

    In particular, more aggressively avoid cross-compilation problems on Unix/
    Linux systems automatically invoking WINE. We could end up invoking WINE
    even when we didn't want to, making configure think it was running native
    when in fact cross-compiling.

  * Hopefully fix compiling with the latest versions of MSVC/nmake.

  * Windows host: add embedded manifest file. Without a manifest, Windows
    applications force a fixed PATH_MAX limit to any pathname; this is
    unnecessary.

  * Add support VEX-encoded SM4-NI instructions.

  * Add support for VEX-encoded SM3-NI instructions.

  * Add support for VEX-encoded SHA512-NI instructions.

  * PTWRITE opcode corrected (F3 prefix required.)

  * Disassembler: the SMAP instructions are NP; notably the prefixed versions
    of CLAC are ERETU/ERETS.

  * Add support for Flexible Return and Exception Delivery (FRED): the LKGS,
    ERETS and ERETU instructions.

  * Fix external references to segments in the obj (OMF) and possibly other
    output formats.

  * Always support up to 8 characters, i.e. 64 bits, in a string-to-numeric
    conversion.

  * Preprocessor: add %map() function to expand a macro from a list of
    arguments, see section 5.4.12.

  * Preprocessor: allow the user to specify the desired radix for an evaluated
    parameter. It doesn't make any direct difference, but can be nice for
    debugging or turning into strings. See the = modifier in section 5.2.1.

  * Update documentation: __USE_package__ is now __?USE_package?__.

  * Documentation: correct a minor problem in the expression grammar for Dx
    statements, see section 3.2.1.

  * Preprocessor: correctly handle empty %rep blocks.

  * Preprocessor: add options for a base prefix to %num(), see section 5.4.14.

  * Preprocessor: add a %hex() function, equivalent to %eval() except that it
    producess hexadecimal values that are nevertheless valid NASM numeric
    constants, see section 5.4.9.

  * Preprocessor: fix the parameter number in error messages (should be
    1-based, like %num references to multi-line macro arguments.)

  * Documentation: be more clear than the bin format is simply a linker built
    into NASM. See section 9.1.

  * Adjust the LOCK prefix warning for XCHG.

    LOCK XCHG reg,mem would issue a warning for being unlockable, which is
    incorrect. In this case the reg,mem encoding is simply an alias for the mem
    ,reg encoding. However, XCHG is always locked, so create a new warning
    (-w+prefix-lock-xchg) to explicitly flag a user-specified LOCK XCHG;
    default off. Future versions of NASM may remove the LOCK prefix when
    optimization is enabled.

  * Fix broken dependency-list generation.

  * Add optional warnings for specific relocation types (-w+reloc-*, see
    appendix A), default off.

    Some target environments may have specific restrictions on what kinds of
    relocations are possible or allowed.

  * Error out on certain bad syntax in Dx statements, such as db 1 2. See
    section 3.2.1.


To generate a diff of this commit:
cvs rdiff -u -r1.70 -r1.71 pkgsrc/devel/nasm/Makefile
cvs rdiff -u -r1.14 -r1.15 pkgsrc/devel/nasm/PLIST
cvs rdiff -u -r1.37 -r1.38 pkgsrc/devel/nasm/distinfo
cvs rdiff -u -r1.4 -r1.5 pkgsrc/devel/nasm/patches/patch-Makefile.in \
    pkgsrc/devel/nasm/patches/patch-doc_Makefile.in
cvs rdiff -u -r0 -r1.1 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.70 pkgsrc/devel/nasm/Makefile:1.71
--- pkgsrc/devel/nasm/Makefile:1.70     Wed Feb  1 12:40:16 2023
+++ pkgsrc/devel/nasm/Makefile  Fri Nov  7 22:10:31 2025
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.70 2023/02/01 12:40:16 adam Exp $
+# $NetBSD: Makefile,v 1.71 2025/11/07 22:10:31 ryoon Exp $
 
-DISTNAME=      nasm-2.16.01
+DISTNAME=      nasm-3.01
 CATEGORIES=    devel lang
-MASTER_SITES=  http://www.nasm.us/pub/nasm/releasebuilds/${PKGVERSION_NOREV}/
+MASTER_SITES=  https://www.nasm.us/pub/nasm/releasebuilds/${PKGVERSION_NOREV}/
 EXTRACT_SUFX=  .tar.xz
 
 MAINTAINER=    pkgsrc-users%NetBSD.org@localhost

Index: pkgsrc/devel/nasm/PLIST
diff -u pkgsrc/devel/nasm/PLIST:1.14 pkgsrc/devel/nasm/PLIST:1.15
--- pkgsrc/devel/nasm/PLIST:1.14        Wed Feb  1 12:40:16 2023
+++ pkgsrc/devel/nasm/PLIST     Fri Nov  7 22:10:31 2025
@@ -1,30 +1,32 @@
-@comment $NetBSD: PLIST,v 1.14 2023/02/01 12:40:16 adam Exp $
+@comment $NetBSD: PLIST,v 1.15 2025/11/07 22:10:31 ryoon Exp $
 bin/nasm
 bin/ndisasm
 man/man1/nasm.1
 man/man1/ndisasm.1
 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/nasmdoc.txt
+share/nasm/nasmtok.el
+share/nasm/nasmtok.json

Index: pkgsrc/devel/nasm/distinfo
diff -u pkgsrc/devel/nasm/distinfo:1.37 pkgsrc/devel/nasm/distinfo:1.38
--- pkgsrc/devel/nasm/distinfo:1.37     Wed Feb  1 12:40:16 2023
+++ pkgsrc/devel/nasm/distinfo  Fri Nov  7 22:10:31 2025
@@ -1,7 +1,8 @@
-$NetBSD: distinfo,v 1.37 2023/02/01 12:40:16 adam Exp $
+$NetBSD: distinfo,v 1.38 2025/11/07 22:10:31 ryoon Exp $
 
-BLAKE2s (nasm-2.16.01.tar.xz) = 4340eea2e650fa4e03f9286c1c91cf3aa9bff8d9156637b4e66130ed39beeffc
-SHA512 (nasm-2.16.01.tar.xz) = 51fccb5639ce019d9c423c0f279750ffbd74c64cd41dd3b185d1aa1a1aaed79c5d3cd8d4bebbc13ee249a375ed27457ea2abde1a4dbb24d354598fffd1254833
-Size (nasm-2.16.01.tar.xz) = 1017732 bytes
-SHA1 (patch-Makefile.in) = 30f8292c622e86e870427be0ca530ccb8dc3feaa
-SHA1 (patch-doc_Makefile.in) = 0baf4cb8ce01403fbe93b3168d7bc00472cbcb61
+BLAKE2s (nasm-3.01.tar.xz) = 2033aac1add7082357ff032977389f4886d82a1027eb54286e9f5ef239da800b
+SHA512 (nasm-3.01.tar.xz) = ca9550ad3239cfaa9546a908e8de86e11a7c7dd9d6006f42d272d0b025b601cdb205e60b8b3929f31123ef450dd0f0403e1300328cadf0ffdfd459f443944482
+Size (nasm-3.01.tar.xz) = 1499136 bytes
+SHA1 (patch-Makefile.in) = 7c3066b1cd3af540ea39023c53a2f4949d10e68d
+SHA1 (patch-doc_Makefile.in) = b9507bf63f071790ed46293f915bb40d32a31d61
+SHA1 (patch-include_compiler.h) = ab9f0b45e4eff19c13fc362c217052ec6f86fa90

Index: pkgsrc/devel/nasm/patches/patch-Makefile.in
diff -u pkgsrc/devel/nasm/patches/patch-Makefile.in:1.4 pkgsrc/devel/nasm/patches/patch-Makefile.in:1.5
--- pkgsrc/devel/nasm/patches/patch-Makefile.in:1.4     Sat Aug  8 18:35:10 2020
+++ pkgsrc/devel/nasm/patches/patch-Makefile.in Fri Nov  7 22:10:31 2025
@@ -1,15 +1,15 @@
-$NetBSD: patch-Makefile.in,v 1.4 2020/08/08 18:35:10 nia Exp $
+$NetBSD: patch-Makefile.in,v 1.5 2025/11/07 22:10:31 ryoon Exp $
 
 Use correct tools.
 
---- Makefile.in.orig   2020-07-18 01:04:39.000000000 +0000
+--- Makefile.in.orig   2025-10-11 06:44:27.000000000 +0000
 +++ Makefile.in
-@@ -37,7 +37,7 @@ AR           = @AR@
- RANLIB                = @RANLIB@
- STRIP         = @STRIP@
+@@ -53,7 +53,7 @@ STRIP                = @STRIP@
+ 
+ tools         = $(top_srcdir)/tools
  
 -PERL          = perl
 +PERL          = ${PERL5}
- PERLFLAGS     = -I$(srcdir)/perllib -I$(srcdir)
+ PERLFLAGS     = -I$(top_srcdir)/perllib -I$(srcdir)
  RUNPERL         = $(PERL) $(PERLFLAGS)
  
Index: pkgsrc/devel/nasm/patches/patch-doc_Makefile.in
diff -u pkgsrc/devel/nasm/patches/patch-doc_Makefile.in:1.4 pkgsrc/devel/nasm/patches/patch-doc_Makefile.in:1.5
--- pkgsrc/devel/nasm/patches/patch-doc_Makefile.in:1.4 Sat Aug  8 18:35:10 2020
+++ pkgsrc/devel/nasm/patches/patch-doc_Makefile.in     Fri Nov  7 22:10:31 2025
@@ -1,46 +1,46 @@
-$NetBSD: patch-doc_Makefile.in,v 1.4 2020/08/08 18:35:10 nia Exp $
+$NetBSD: patch-doc_Makefile.in,v 1.5 2025/11/07 22:10:31 ryoon Exp $
 
 Use correct paths and tools.
 Do not build nasmdoc.pdf.
 Avoid cp -u, it is not portable.
 
---- doc/Makefile.in.orig       2020-07-18 01:04:07.000000000 +0000
+--- doc/Makefile.in.orig       2025-10-11 06:44:05.000000000 +0000
 +++ doc/Makefile.in
-@@ -20,7 +20,7 @@ INSTALL              = @INSTALL@
+@@ -33,7 +33,7 @@ INSTALL              = @INSTALL@
  INSTALL_PROGRAM       = @INSTALL_PROGRAM@
  INSTALL_DATA  = @INSTALL_DATA@
  
--PERL          = perl -I$(srcdir)
-+PERL          = ${PERL5} -I$(srcdir)
+-PERL          = perl
++PERL          = ${PERL5}
+ RUNPERL               = $(PERL) -I$(top_srcdir)/perllib -I$(srcdir)
  
  PDFOPT                = @PDFOPT@
+@@ -62,8 +62,8 @@ SRCS         = nasmdoc.src
+ # All input files (except auto-dependencies)
+ ALLSRCS               = $(SRCS) $(GENSRC)
  
-@@ -40,8 +40,8 @@ XZFILES         = @XZFILES@
- HTMLAUX               = nasmdoc.css local.css nasmlogw.png
- 
- SRCS          = nasmdoc.src inslist.src changes.src warnings.src version.src
 -OUT           = html nasmdoc.txt nasmdoc.pdf $(XZFILES)
 -XZOUT           = nasmdoc.pdf.xz
 +OUT           = html nasmdoc.txt $(XZFILES)
-+XZOUT           =
++XZOUT           = 
  
- .SUFFIXES:
- .SUFFIXES: .pfa .ph
-@@ -57,7 +57,7 @@ inslist.src: inslist.pl ../x86/insns.dat
+ # 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) html/nasmdoc0.html
+       $(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)
  
- RDSRC = $(PERL) $(srcdir)/rdsrc.pl -I$(srcdir)/
-@@ -116,7 +116,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) nasmdoc.txt $(DESTDIR)$(docdir)
+-install: install_html install_pdf
++install: install_html
  
  #
  # Dummy rules that changes make behavior

Added files:

Index: pkgsrc/devel/nasm/patches/patch-include_compiler.h
diff -u /dev/null pkgsrc/devel/nasm/patches/patch-include_compiler.h:1.1
--- /dev/null   Fri Nov  7 22:10:32 2025
+++ pkgsrc/devel/nasm/patches/patch-include_compiler.h  Fri Nov  7 22:10:31 2025
@@ -0,0 +1,26 @@
+$NetBSD: patch-include_compiler.h,v 1.1 2025/11/07 22:10:31 ryoon Exp $
+
+* For NetBSD, do not use complicated trick.
+
+--- include/compiler.h.orig    2025-10-11 06:44:05.000000000 +0000
++++ include/compiler.h
+@@ -183,6 +183,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 +210,11 @@ 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))
++#endif
+ #endif
+ 
+ /* Create a NULL pointer of the same type as the address of



Home | Main Index | Thread Index | Old Index