|
![](/images/spacer.gif) |
![](/images/spacer.gif) |
![](/images/spacer.gif) |
Changelog for nasm-2.16.03-lp154.78.1.x86_64.rpm :
* Thu Apr 18 2024 Michael Vetter - 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 - 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 - 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 - 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 - add reproducible.patch to avoid use of __DATE__ * Wed Oct 21 2020 Dominique Leuenberger - 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 - 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}. * Sat Jul 18 2020 Andreas Stieger - nasm 2.15.3: * Add instructions from the Intel Instruction Set Extensions and Future Features Programming Reference, June 2020. This includes AVX5512 bfloat16, AVX512 mask intersect, and Intel Advanced Matrix Extensions (AMX). * Support for bfloat16 floating-point constants * various bug fixes * Sat Jul 04 2020 Andreas Stieger - update to 2.15.2: * Fix the handling of macro parameter ranges (%{:}), including with brace-enclosed original arguments- includes changes from 2.15.01: * Add instructions for Intel Control Flow Enforcement Technology- includes changes from 2.15: * The comparison and booleanizing operators can now be used in any expression context, not just %if * New operator ? ... :. * Signed shift operators <<< and >>> * The MASM DUP syntax for data definitions is now supported, in a somewhat enhanced form * Warn for strange legacy behavior regarding empty arguments in multi-line macro expansion, but try to match legacy behavior in most cases. Legacy behavior can be disabled with the directive %pragma preproc sane_empty_expansion * A much more sensible limit to expression evaluation depth. The previously defined limit would rarely trigger before NASM died with a stack overrun error on most systems * The state of warnings can now be saved and restored via the [WARNING PUSH] and [WARNING POP] directives * The sectalign on|off switch does not affect an explicit directive * Fixed \'mismatch in operand sizes\' error in the MOVDDUP, CMPXCHG8B and CMPXCHG16B instructions. * Removed obsolete gnu-elf-extensions warning about 8- and 16-bit relocation generation * Added group aliases for all prefixed warnings * Added implicitly sized versions of the K... instructions, which allows the K... instructions to be specified without a size suffix as long as the operands are sized * Added -L option for additional listing information * Added some warnings for obsolete instructions for a specified CPU. * Deprecated -hf and -y options. Use -h instead * Made DWARF as the default debug format for ELF * Added %pragma list options... to set or clear listing options * Allowed immediate syntax for LEA instruction (ignore operand size completely) * Added limited functionality MASM compatibility package * Add single-line macros aliases using %defalias or %idefalias. These behave like a kind of \"symbolic links\" for single-line macros * Added support for stringify, nostrip, evaluating, and greedy single-line macro arguments * Unused single-line macro arguments no longer need to have a specified name * Added conditional comma operator %, * Changed private namespace from __foo__ to __?foo?__, so a user namespace starting from underscore is now clean from symbols. For backwards compatibility, the previous names are defined as aliases * Added support of ELF weak symbols and external references * Changed the behavior of the EXTERN keyword and introduced REQUIRED keyword * Added %ifusable and %ifusing directives * Made various performance improvements and stability fixes in macro preprocessor engine * Improved NASM error handling and cleaned up error messages- includes changes from 2.14.03: * Suppress nuisance \"label changed during code generation\" messages after a real error * Add support for the merge and strings attributes on ELF sections * Add support for the note, preinit_array, init_array, and fini_array sections type in ELF * Handle more than 32,633 sections in ELF * Sat Nov 30 2019 Dominique Leuenberger - Convert changes file to proper UTF-8 format: new version of RPM are getting strict in interpreting files. * Tue Mar 05 2019 Martin Pluskal - Update to version 2.14.02: * Fix crash due to multiple errors or warnings during the code generation pass if a list file is specified. * Create all system-defined macros defore processing command-line given preprocessing directives (-p, -d, -u, --pragma, --before). * If debugging is enabled, define a __DEBUG_FORMAT__ predefined macro. See section 4.11.7. * Fix an assert for the case in the obj format when a SEG operator refers to an EXTERN symbol declared further down in the code. * Fix a corner case in the floating-point code where a binary, octal or hexadecimal floating-point having at least 32, 11, or 8 mantissa digits could produce slightly incorrect results under very specific conditions. * Support -MD without a filename, for gcc compatibility. -MF can be used to set the dependencies output filename. See section 2.1.7. * Fix -E in combination with -MD. See section 2.1.21. * Fix missing errors on redefined labels; would cause convergence failure instead which is very slow and not easy to debug. * Duplicate definitions of the same label with the same value is now explicitly permitted (2.14 would allow it in some circumstances.) * Add the option --no-line to ignore %line directives in the source. See section 2.1.33 and section 4.10.1. * Changed -I option semantics by adding a trailing path separator unconditionally. * Fixed null dereference in corrupted invalid single line macros. * Fixed division by zero which may happen if source code is malformed. * Fixed out of bound access in processing of malformed segment override. * Fixed out of bound access in certain EQU parsing. * Fixed buffer underflow in float parsing. * Added SGX (Intel Software Guard Extensions) instructions. * Added +n syntax for multiple contiguous registers. * Fixed subsections_via_symbols for macho object format. * Added the --gprefix, --gpostfix, --lprefix, and --lpostfix command line options, to allow command line base symbol renaming. See section 2.1.28. * Allow label renaming to be specified by %pragma in addition to from the command line. See section 6.9. * Supported generic %pragma namespaces, output and debug. See section 6.10. * Added the --pragma command line option to inject a %pragma directive. See section 2.1.29. * Added the --before command line option to accept preprocess statement before input. See section 2.1.30. * Added AVX512 VBMI2 (Additional Bit Manipulation), VNNI (Vector Neural Network), BITALG (Bit Algorithm), and GFNI (Galois Field New Instruction) instructions. * Added the STATIC directive for local symbols that should be renamed using global-symbol rules. See section 6.8. * Allow a symbol to be defined as EXTERN and then later overridden as GLOBAL or COMMON. Furthermore, a symbol declared EXTERN and then defined will be treated as GLOBAL. See section 6.5. * The GLOBAL directive no longer is required to precede the definition of the symbol. * Support private_extern as macho specific extension to the GLOBAL directive. See section 7.8.5. * Updated UD0 encoding to match with the specification * Added the --limit-X command line option to set execution limits. See section 2.1.31. * Updated the Codeview version number to be aligned with MASM. * Added the --keep-all command line option to preserve output files. See section 2.1.32. * Added the --include command line option, an alias to -P (section 2.1.18). * Added the --help command line option as an alias to -h (section 3.1). * Added -W, -D, and -Q suffix aliases for RET instructions so the operand sizes of these instructions can be encoded without using o16, o32 or o64.- Drop no longer needed 9f45a77f4.patch- Enable LTO- Cleanup spec file * Thu Mar 15 2018 mpluskalAATTsuse.com- Modernise spec file with spec-cleaner * Thu Mar 15 2018 adam.majerAATTsuse.de- New upstream version 2.13.03: * Add flags: AES, VAES, VPCLMULQDQ * Add VPCLMULQDQ instruction * elf: Add missing dwarf loc section * documentation updates- 9f45a77f4.patch: fixes compilation with gcc8 (bsc#1084631) * Wed Jan 24 2018 adam.majerAATTsuse.de- New upstream version 2.13.02: * Fix generation of PEXTRW instruction. * Fix smartalign package which could trigger an error during optimization if the alignment code expanded too much due to optimization of the previous code. * Fix a case where negative value in TIMES directive causes panic instead of an error. * Fix the incorrect generation of VEX-encoded instruction when static mode decorators are specified on scalar instructions, losing the decorators as they require EVEX encoding. * Fix generation of dependency lists. * Fixes macro calls that have the wrong number of arguments (bsc#1073796, CVE-2017-17810) * Fixes Heap-based buffer overflow allows related to a strcpy in paste_tokens (bsc#1073798, CVE-2017-17811) * Fixes Heap-based buffer over-read in the function detoken() (bsc#1073799, CVE-2017-17812) * Fixes Use-after-free in the pp_list_one_macro function (bsc#1073803, CVE-2017-17813) * Fixes Use-after-free in do_directive (bsc#1073808, CVE-2017-17814) * Fixes Illegal address access in is_mmacro() (bsc#1073818, CVE-2017-17815) * Fixes Use-after-free in pp_getline (bsc#1073823, CVE-2017-17816) * Fixes Use-after-free in pp_verror (bsc#1073829, CVE-2017-17817) * Fixes Heap-based buffer over-read related to a while loop in paste_tokens (bsc#1073830, CVE-2017-17818) * Fixes Illegal address access in the function find_cc (bsc#1073832, CVE-2017-17819) * Fixes Use-after-free in pp_list_one_macro (bsc#1073846, CVE-2017-17820) * Fixes illegal address access in thefunction paste_tokens() (bsc#1058013, CVE-2017-14228)- memory_fixes.patch: changes upstreamed and removed. * Tue Jul 25 2017 adam.majerAATTsuse.de- memory_fixes.patch: Fix usage-after-free and buffer overflow bugs (bsc#1047925, bsc#1047936, CVE-2017-11111, CVE-2017-10686)- Restrict %fdupes to manpage directory- Enable unit tests in %check target * Tue May 23 2017 mpluskalAATTsuse.com- Update to version 2.13.01: * Fix incorrect output for some types of FAR or SEG references in the obj output format, and possibly other 16-bit output formats. * Fix the address in the list file for an instruction containing a TIMES directive. * Fix error with TIMES used together with an instruction which can vary in size, e.g. JMP. * Fix breakage on some uses of the DZ pseudo-op.- Changes for 2.13.00: * Support the official forms of the UD0 and UD1 instructions. * Allow self-segment-relative expressions in immediates and displacements * Handle a 64-bit origin in NDISASM. * NASM can now generate sparse output files for relevant output formats, if the underlying operating system supports them. * Fix a number of bugs related to AVX-512 decorators. * Fix the {z} decorator on AVX-512 VMOVDQ * instructions. * Add new warnings for certain dangerous constructs which never ought to have been allowed. * Fix the EVEX (AVX-512) versions of the VPBROADCAST, VPEXTR, and VPINSR instructions. * Support contracted forms of additional instructions. * Fix Codeview malformed compiler version record. * Add the CLWB and PCOMMIT instructions. * Add the %pragma preprocessor directive for soft-error directives. * Add the RDPID instruction.- Drop doc subpackage * Fri Jul 08 2016 mpluskalAATTsuse.com- Update to version 2.12.02: * Fix preprocessor errors, especially %error and %warning, inside if statements. * Fix relative relocations in 32-bit Mach-O. * More Codeview debug format fixes. * If the MASM PTR keyword is encountered, issue a warning. This is much more likely to indicate a MASM-ism encountered in NASM than it is a valid label. * This warning can be suppressed with -w-ptr, the [warning] directive (see section 2.1.24) or by the macro definition %idefine ptr %??. * When an error or a warning comes from the expansion of a multi-line macro, display the file and line numbers for the expanded macros. * Macros defined with .nolist do not get displayed. * Add macros ilog2fw() and ilog2cw() to the ifunc macro package. See section 5.4.1.- Changes for version 2.12.01: * Portability fixes for some platforms. * Fix error when not specifying a list file. * Correct the handling of macro-local labels in the Codeview debugging format. * Add CLZERO, MONITORX and MWAITX instructions.- Drop no longer needed nasm_change_unused.patch * Wed Mar 02 2016 normandAATTlinux.vnet.ibm.com- new nasm_change_unused.patch to avoid PowerPC build error * Tue Mar 01 2016 mpluskalAATTsuse.com- Update to 2.12 * Major fixes to the macho backend (section 7.8); earlier versions would produce invalid symbols and relocations on a regular basis. * Support for thread-local storage in Mach-O. * Support for arbitrary sections in Mach-O. * Fix wrong negative size treated as a big positive value passed into backend causing NASM to crash. * Fix handling of zero-extending unsigned relocations, we have been printing wrong message and forgot to assign segment with predefined value before passing it into output format. * Fix potential write of oversized (with size greater than allowed in output format) relative relocations. * Portability fixes for building NASM with LLVM compiler. * Add support of Codeview version 8 (cv8) debug format for win32 and win64 formats in the COFF backend, see section 7.5.3. * Allow 64-bit outputs in 16/32-bit only backends. Unsigned 64-bit relocations are zero-extended from 32-bits with a warning (suppressible via -w-zext-reloc); signed 64-bit relocations are an arror. * Line numbers in list files now correspond to the lines in the source files, instead of simply being sequential. * There is now an official 64-bit (x64 a.k.a. x86-64) build for Windows.- Changes for 2.11.09 * Fix potential stack overwrite in macho32 backend. * Fix relocation records in macho64 backend. * Fix symbol lookup computation in macho64 backend. * Adjust .symtab and .rela.text sections alignments to 8 bytes in elf64 backed. * Fix section length computation in bin backend which leaded in incorrect relocation records.- Update build dependencies * Tue Feb 24 2015 mpluskalAATTsuse.com- Build doc package as noarch- Use fdupes to remove duplicates- Update to 2.11.08 * Fix section length computation in bin backend which leaded in incorrect relocation records. * Add a warning for numeric preprocessor definitions passed via command line which might have unexpected results otherwise. * Add ability to specify a module name record in rdoff linker with -mn option. * Increase label length capacity up to 256 bytes in rdoff backend for FreePascal sake, which tends to generate very long labels for procedures. * Fix segmentation failure when rip addressing is used in macho64 backend. * Fix access on out of memory when handling strings with a single grave. We have sixed similar problem in previous release but not all cases were covered. * Fix NULL dereference in disassembled on BND instruction.- Changes for 2.11.07 * Fix 256 bit VMOVNTPS instruction. * Fix -MD option handling, which was rather broken in previous release changing command line api. * Fix access to unitialized space when handling strings with a single grave. * Fix nil dereference in handling memory reference parsing. * Sat Feb 21 2015 mpluskalAATTsuse.com- Cleanup spec file with spec-cleaner- Update project url- Switch to .xz source- Update to 2.11.06: * Add support for the Intel AVX-512 instruction set: * 16 new, 512-bit SIMD registers. Total 32 (ZMM0 ~ ZMM31) * 8 new opmask registers (K0 ~ K7). One of 7 registers (K1 ~ K7) can be used as an opmask for conditional execution. * A new EVEX encoding prefix. EVEX is based on VEX and provides more capabilities: opmasks, broadcasting, embedded rounding and compressed displacements. * Add support for ZWORD (512 bits), DZ and RESZ. * Add support for the MPX and SHA instruction sets. * Better handling of section redefinition. * Generate manpages when running \'make dist\'. * Handle all token chains in mmacro params range. * Support split [base,index] effective address: * for more details see http://www.nasm.us/doc/nasmdocc.html
|
|
|