New features (compared to 0.5.0):
* Brand-new "virtual" multi-pass optimizer that automatically
generates much smaller code for jumps and immediates.
* Support for Mach-O object format used in MacOS X, including
both the 32-bit (x86) and 64-bit (AMD64) versions (contributed
by Henryk Richter).
* Support for structured exception handling on Win64.
* Support for RDOFF2 (.rdf) object format.
* Support for STRICT keyword in NASM syntax.
* Rewritten NASM and GAS parsers (now recursive descent rather
than Bison-based).
* Absolute / FAR location bugfixes.
* Yasm no longer defaults to reading from standard input if no
files are specified; standard input can be specified with "-".
* Many other bugfixes.
New features in this release (compared to 0.5.0rc2):
- Support for arithmetic on single-character constants.
- Support for OUTPUT_FORMAT as an alias for YASM_OBJFMT.
- A couple of other bugfixes.
New features in this release (compared to 0.5.0rc1):
- Support for CodeView 8.0 source debugging (as used by Visual Studio
2005).
- Fixed -I support to properly handle relative paths (now the search
pattern is essentially identical to most C compilers). This change is
backwards incompatible (to both NASM and earlier Yasm versions), but
is much more consistent.
- Standard macros that provide version information: __YASM_MAJOR__,
__YASM_MINOR__, __YASM_SUBMINOR__, __YASM_BUILD__, __YASM_VERSION_ID__
and __YASM_VER__.
New features in this release (compared to 0.4.0) include:
- Aliases for AMD64 object formats: "win64" and "elf64" (these
automatically set the machine to "amd64").
- "x64" alias for Win64 object format (for easier use with Visual
Studio).
- DWARF2 debugging format (enable with "-g dwarf2").
- GAS parser good enough to take GCC output for both AMD64 and 32-bit
x86 (including DWARF2 debug information).
- Dozens of bugfixes in x86 and AMD64 support.
- Specifying "amd64" as the machine (or using a 64-bit object format)
automatically sets BITS 64.
Known issues with this release include:
- List output is buggy and often outright wrong.
- The optimizer is a very basic 2-pass style and generates inefficient
(large) code at times.
- The binary object format does not yet support sections other than
.text, .bss, and .data, unlike newer versions of NASM (see Trac bug
#71).
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
New features since 0.2.2:
* ELF AMD64 and 32-bit shared object support (using the NASM notation
"WRT ..got", etc).
* STABS debugging format (enable with "-g stabs").
* NASM-like list format.
* XDF object format (64-bit basic format, similar in spirit to NASM's RDF).
* Dozens of bugfixes in x86 and AMD64 support.
* Numerous cross-platform build fixes.
* No perl dependencies for standard build.
* New man pages: yasm(1) and yasm_arch(7).
* Full support for ELF, including support for both AMD64 and 32-bit
x86 targets; note: for AMD64 output, the machine type must be set
to "amd64" using the "-m" command line option, e.g.
"yasm -m amd64 -f elf test.asm".
* Full warnings for integer overflow.
* Full support for AMD64 RIP-relative addressing; the two forms supported
are "[rip+val]" (direct index) and "[sym wrt rip]" (relocated relative).
* Many AMD64 bugfixes including correct operand size handling (and o64
override); thanks to the many bug reports to help improve YASM in this area!
around at either build-time or at run-time is:
USE_TOOLS+= perl # build-time
USE_TOOLS+= perl:run # run-time
Also remove some places where perl5/buildlink3.mk was being included
by a package Makefile, but all that the package wanted was the Perl
executable.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
Changes in 0.2.2:
* FAR jmp/call support.
Changes in 0.2.1:
# Added support for NASM-like -I and -P options to the preprocessor
to specify include directories and pre-included files respectively
(thanks to Michael Urman for his quick work).
# Fixed a number of issues with libtool/libltdl and module building
(these issues only affected UNIX builds).
# Made the "real" NASM preprocessor the default preprocessor. This was
not the case in the original Milestone 2 release (despite an example
to the contrary in the release notes)
YASM is a complete rewrite of the NASM assembler under the "new" BSD License
(some portions are currently under the GNU General Public License (GPL) or
the GNU Lesser General Public License (LGPL)). It is designed from the ground
up to allow for multiple assembler syntaxes to be supported (eg, NASM, TASM,
GAS, etc.) in addition to multiple output object formats. Another primary
module of the overall design is an optimizer module.
Package provided in pkgsrc-wip by Juan RP.