Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

nasm-3.02-1.2 RPM for i586

From OpenSuSE Ports Tumbleweed for i586

Name: nasm Distribution: openSUSE Tumbleweed
Version: 3.02 Vendor: openSUSE
Release: 1.2 Build date: Mon Jul 6 11:34:10 2026
Group: Development/Languages/Other Build host: reproducible
Size: 3042740 Source RPM: nasm-3.02-1.2.src.rpm
Packager: http://bugs.opensuse.org
Url: https://www.nasm.us/
Summary: Netwide Assembler (An x86 Assembler)
NASM is a prototype general-purpose x86 assembler. It can currently output
several binary formats, including ELF, a.out, Win32, and OS/2.

Provides

Requires

License

BSD-2-Clause

Changelog

* Mon Jul 06 2026 Michael Vetter <mvetter@suse.com>
  - Update to 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. (CVE-2026-6068) (bsc#1261985)
    * 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.
  - CVE-2026-6067: heap buffer overflow vulnerability due to a lack of bounds checking in the obj_directive (bsc#1261986)
    Add nasm-CVE-2026-6067.patch
* Thu Oct 30 2025 Michael Vetter <mvetter@suse.com>
  - Update to 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.
* Thu Oct 30 2025 Michael Vetter <mvetter@suse.com>
  - Update to 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.8.6.
    * Fix a spec violation in the generation of DWARF debugging information on ELF.
    * Response files can now be nested.
    * Many documentation improvements.
* Thu Apr 18 2024 Michael Vetter <mvetter@suse.com>
  - Update to 2.16.03:
    * 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.
* Fri Apr 05 2024 Michael Vetter <mvetter@suse.com>
  - Update to 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 4.4.7.
    * 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 4.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 4.4.8.
    * Preprocessor: add a %hex() function, equivalent to %eval()
      except that it producess hexadecimal values that are nevertheless
      valid NASM numeric constants, see section 4.4.5.
    * 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 8.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.
* Thu Dec 22 2022 Michael Vetter <mvetter@suse.com>
  - Update to 2.16.01:
    * Fix the creation of the table of contents in the HTML version
      of the documentation.
* Wed Dec 21 2022 Michael Vetter <mvetter@suse.com>
  - Update to 2.16:
    * Support for the rdf format has been discontinued and all the
      RDOFF utilities has been removed.
    * The --reproducible option now leaves the filename field in the
      COFF object format blank. This was always rather useless since it is
      only 18 characters long; as such debug formats have to carry their own
      filename information anyway.
    * Fix handling of MASM-syntax reserved memory (e.g. dw ?) when
      used in structure definitions.
    * The preprocessor now supports functions, which can be less verbose
      and more convenient than the equivalent code implemented using
      directives. See ppfunc.
    * Fix the handling of %00 in the preprocessor.
    * Fix incorrect handling of path names affecting error messages,
      dependency generation, and debug format output.
    * Support for the RDOFF output format and the RDOFF tools have been
      removed. The RDOFF tools had already been broken since at least NASM
      2.14. For flat code the ELF output format recommended; for segmented
      code the obj (OMF) output format.
    * New facility: preprocessor functions. Preprocessor functions, which
      are expanded similarly to single-line macros, can greatly simplify
      code that in the past would have required a lengthy list of directives
      and intermediate macros. See ppfunc.
    * Single-line macros can now declare parameters (using a &&
      prefix) that creates a quoted string, but does not requote an
      already quoted string. See define.
    * Instruction table updated per public information available as of
      November 2022.
    * All warnings in the preprocessor have now been assigned warning
      classes. See warnings.
    * Fix the invalid use of RELA-type relocations instead of
      REL-type relocations when generating DWARF debug information for
      the elf32 output format.
    * Fix the handling at in istruc when the structure contains
      local labels. See istruc.
    * When assembling with --reproducible, don't encode the filename
      in the COFF header for the coff}, win32 or win64 output
      formats. The COFF header only has space for an 18-character filename,
      which makes this field rather useless in the first place. Debug output
      data, if enabled, is not affected.
    * Fix incorrect size calculation when using MASM syntax for non-byte
      reservations (e.g. dw ?.)
    * Allow forcing an instruction in 64-bit mode to have a (possibly
      redundant) REX prefix, using the syntax rex as a prefix.
    * Add a vex prefix to enforce VEX (AVX) encoding of an
      instruction, either using the 2- or 3-byte VEX prefixes.
    * The CPU directive has been augmented to allow control of
      generation of VEX (AVX) versus EVEX (AVX-512) instruction formats, see
      CPU.
    * Some recent instructions that previously have been only available
      using EVEX encodings are now also encodable using VEX (AVX)
      encodings. For backwards compatibility these encodings are not enabled
      by default, but can be generated either via an explicit vex
      prefix or by specifying either CPU LATEVEX or CPU NOEVEX; see
      CPU.
    * Document the already existing unimacro directive. See unmacro.
    * Fix a code range generation bug in the DWARF debug format
      (incorrect information in the DW_AT_high_pc field) for the ELF
      output formats. This bug happened to cancel out with a bug in older
      versions of the GNU binutils linker, but breaks with other linkers and
      updated or other linkers that expect the spec to be followed.
    * Fix segment symbols with addends, e.g. jmp _TEXT+10h:0 in
      output formats that support segment relocations, e.g. the obj
      format.
    * Fix various crashes and hangs on invalid input
* Fri Dec 16 2022 Dirk Müller <dmueller@suse.com>
  - add reproducible.patch to avoid use of __DATE__
* Wed Oct 21 2020 Dominique Leuenberger <dimstar@opensuse.org>
  - Update to version 2.15.05:
    + Fix {%ifid $} and {%ifid $$} incorrectly being treated as true.
    + Add {--reproducible} option to suppress NASM version numbers
      and timestamps in output files. See {opt-reproducible}.
* Mon Aug 24 2020 Dirk Mueller <dmueller@suse.com>
  - update to 2.15.4:
    * More sensible handling of the case where one single-line macro
    definition will shadow another.
    * Add special preprocessor tokens \c{%*?} and \c{%*??} that expand
    like \c{%?} and \c{%??} in single-line macros only. See
    \k{selfref%*?}.
    * Fix SSE instructions not being recognized with an explicit memory
    operation size (e.g. \c{movsd qword [eax],xmm0}).
    * The \c{-L+} option no longer enables \c{-Lw}, which is mainly
    useful to debug NASM crashes. See \k{opt-L}.
    * The NASM-only RDOFF output format backend, which has been broken
    since at least NASM 2.14, has been disabled. The RDOFF tools are
    scheduled to be removed from the NASM distribution in NASM 2.16. If
    you have a concrete use case for RDOFF, please file a NASM bug report
    at \W{https://bugs.nasm.us/}\c{https://bugs.nasm.us/} as soon as
    possible. See \k{rdffmt}.

Files

/usr/bin/nasm
/usr/bin/ndisasm
/usr/share/doc/packages/nasm
/usr/share/doc/packages/nasm/AUTHORS
/usr/share/doc/packages/nasm/CHANGES
/usr/share/doc/packages/nasm/ChangeLog
/usr/share/doc/packages/nasm/README.md
/usr/share/licenses/nasm
/usr/share/licenses/nasm/LICENSE
/usr/share/man/man1/nasm.1.gz
/usr/share/man/man1/ndisasm.1.gz


Generated by rpm2html 1.8.1

Fabrice Bellet, Sun Aug 2 02:32:54 2026